将列表更改为字符串
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'
我有一个这样的列表:
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'