在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中将列表转换为字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章