将列表更改为字符串

Changing a list into a string

我有一个这样的列表:

li = [1, 2, 3, 4, 5]  

我想把它变成一个字符串,去掉引号,去掉逗号,这样它看起来像这样:

1 2 3 4 5

我尝试了以下方法:

new_list = []
new_list.append(li)
new_string = " ".join(new_list)
print new_string

但是我收到以下错误:

TypeError: sequence item 0: expected str instance, int found

为什么会发生这种情况,我该如何解决这个问题以获得我想要的输出?

列表中的项目必须是 str 类型才能使用给定的分隔符连接它们。试试这个:

' '.join(map(str, your_list)) # join the resulting iterable of strings, after casting ints

错误是由于试图将整数连接到字符串中,您可以执行此操作以将每个值转换为字符串,然后连接它们。

new_list = [str(x) for x in li]
new_string = " ".join(new_list)

单线:

new_string = " ".join([str(x) for x in li])

发生这种情况是因为 join 需要一个可迭代的字符串序列,而您的包含 int。

您需要使用列表理解将此列表转换为字符串:

>>> li 
[1, 2, 3, 4, 5]
>>> new_li = [str(val) for val in li]
>>> new_li
['1', '2', '3', '4', '5']

或常规 for 循环:

   >>> for x in range(len(li)):
    ...     li[x] = str(li[x])
    ...     
    >>> li
    ['1', '2', '3', '4', '5']

那么你的表情就可以了。

>>> result = ' '.join(li)
>>> result
'1 2 3 4 5'