在python中将列表转换为字符串[重复]

Posted

技术标签:

【中文标题】在python中将列表转换为字符串[重复]【英文标题】:convert list to string in python [duplicate] 【发布时间】:2020-04-22 18:44:33 【问题描述】:
TypeError: can only join an iterable

我正在尝试将整数列表转换为字符串。它向我显示了上述错误。我做错了什么?

预期输出:10,5,78

l=[10,5,78]
s=''
for i in l:
    s=s.join(i)
print(s)

【问题讨论】:

正如错误信息所说,s.join“只能加入一个可迭代对象”。 i 是可迭代的吗?不,它是一个整数,整数不能被迭代。你可以直接s = str(l)[1:-1],例如 l = [10,5,78]; ",".join([str(i) for i in l]) @VishalPallikonda,它将l 转换为字符串"[10, 5, 78]" 并返回除了第一个(1)和最后一个(-1)字符(括号)之外的字符。 [1:-1] 语法称为 slicing 如果你想用逗号分隔数字,你只需要s = ''.join(str(_) for _ in l)s = ','.join(str(_) for _ in l) @Tim,输出非常接近,不过(我 90% 确定空格在这里没有那么重要),并且很容易使其与所需的输出完全匹配:@987654334 @ 【参考方案1】:

加入的工作方式并非您认为的那样。

加入的作用:

",".join(["a", "b", "c"])

"a,b,c"。本质上,它使用您在.join 之前提供的内容从列表中的元素创建一个字符串,在这种情况下它是一个逗号。

所以你想要的可以通过

",".join(str(x) for x in l)

inside 表达式将列表l 中的整数转换为字符串,然后用逗号连接它们。

【讨论】:

【参考方案2】:

.join() 方法作用于现有字符串并接受字符串列表。加入给定列表的每个项目,由作用于的字符串分隔。

>>> l = [10, 5, 78]
>>> l = [str(i) for i in l]    # map to a list of strings
>>> s = ','.join(l)            # join all the strings separated by a comma
>>> s
'10,5,78'

【讨论】:

以上是关于在python中将列表转换为字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在Python中将十六进制字符串转换为ObjectId [重复]

如何在python中将字符串转换为日期时间[重复]

在Python中将字符串分解为字符列表[重复]

如何在python中将异常转换为字符串[重复]

如何在python中将数组字符串转换为数组[重复]

如何在 Python 中将列表转换为带有空格的字符串?