从列表创建逗号分隔的字符串

Kar*_*rus 6 python string join list

我有一个int列表,想要创建一个逗号分隔的字符串.下列:

x = [3, 1, 4, 1, 5]
y = ",".join(x)
Run Code Online (Sandbox Code Playgroud)

给出错误:

TypeError: sequence item 0: expected string, int found
Run Code Online (Sandbox Code Playgroud)

如何创建字符串?我可以手动将每个元素从int转换为字符串,将其插入到新列表中,然后在这个新列表上进行连接,但我想知道是否有更清晰的解决方案.

iCo*_*dez 12

str.join只接受一个可迭代的字符串,而不是一个整数.来自文档:

str.join(iterable)

返回一个字符串,该字符串是iterable中字符串的串联iterable.

因此,您需要将项目转换x为字符串.您可以使用其中一个map列表理解:

x = [3, 1, 4, 1, 5]
y = ",".join(map(str, x))

x = [3, 1, 4, 1, 5]
y = ",".join([str(item) for item in x])
Run Code Online (Sandbox Code Playgroud)

请参阅下面的演示:

>>> x = [3, 1, 4, 1, 5]
>>>
>>> ",".join(map(str, x))
'3,1,4,1,5'
>>>
>>> ",".join([str(item) for item in x])
'3,1,4,1,5'
>>>
Run Code Online (Sandbox Code Playgroud)