如何将列表转换为字符串

1168

我该如何使用Python将列表转换为字符串?


61
str(anything)可以将任何Python对象转换为其字符串表示形式。类似于执行print(anything)时得到的输出,但作为一个字符串。 - ToolmakerSteve
3
为了使这个与那个不同,有一种方法是建议使用JSON来完成它,例如https://dev59.com/nWMm5IYBdhLWcg3wMswp。使用JSON易于进行反向过程(字符串到列表)。但是,原帖确实需要解释他们的目的是仅用于显示还是其他用途。 - demongolem
请给出您所需格式的示例。 - Solomon Ucko
3个回答

1939

使用 ''.join 方法:

xs = ['1', '2', '3']
s = ''.join(xs)
如果列表包含整数,在连接它们之前将元素转换为字符串:
xs = [1, 2, 3]
s = ''.join(str(x) for x in xs)

58
如果生成的字符串需要作为不同的项传递给一个进程,例如传递一个文件列表,那么双引号 "" 必须被改成带空格的双引号 " "。否则,你会得到一个连续的字符串 ("123" 而不是 "1 2 3")。如果这是意图中的结果,那么可以接受,但需要在响应中提及。 - Bogdan
只是想指出,第二种形式在几乎任何(单层)列表上都可以正常工作。 - The Nate
6
我在这里寻找它,结果在其他地方找到了:如果你想让每个列表元素都换行(对于长字符串列表可能有用):print("\n".join(['I', 'would', 'expect', 'multiple', 'lines'])) - Honeybear
这个问题可能是重复的,但这里的答案比那里更好。 :) 而且这个答案在谷歌上排名第一,而另一个则没有。(我注意到很多重复的问题都是这样) - codehelp4
5
同意@Bogdan的观点。这个答案创建了一个字符串,其中列表元素没有空格或逗号连接。您可以使用 ', '.join(list1) 将列表的元素用逗号和空格连接起来,或者使用 ' '.join(to) 仅使用空格连接。 - R.S.K
显示剩余2条评论

424
>>> xs = [1, 2, 3]       
>>> " ".join(str(x) for x in xs)
'1 2 3'

我建议使用:>>> " ".join([str(x) for x in L]) - Alexandre Crivellaro
1
str(anything)会将任何Python对象转换为其字符串表示形式。类似于执行print(anything)时得到的输出,但是作为一个字符串。 - Redoman

129
xs = ['L', 'O', 'L']
lol_string = ''.join(map(str, xs))

2
它会抛出TypeError异常,就像这样: In [15]: L=['1','2','3']

In [16]: print ''.join(map(str,L))

TypeError Traceback (most recent call last) <ipython-input-16-f3b8e6cb2622> in <module>() ----> 1 print ''.join(map(str,L))TypeError: 'str' object is not callable
- wgzhao
17
由于问题中没有具体说明,如果您想在列表项中保留单引号(例如向SQL发送查询),可以采用以下方法:x = [1,2,3] y = "'" + "','".join(map(str, x)) + "'" - tandy
任何试图在将列表转换为字符串后重复使用字符串的人都可以使用此方法:list1 = [1, 2, 3] str1 = ''.join('hello world' + str(e) + 'hello world' for e in list1)

输出

hello world 1 hello world hello world 2 hello world hello world 3 hello world
- PanDe
str(anything)会将任何Python对象转换为其字符串表示形式。类似于执行print(anything)的输出,但结果是一个字符串。 - Redoman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接