在Python中将列表“拆分”为字符串的最简单方法是什么?
从字符串创建列表:
s='1\t2\t3\t4'
我们使用:
s.split('\t',-1)
我尝试将split功能用于列表:
l=[1,2,3,4]
获取字符串:
s='1\t2\t3\t4'
但我得到AttributeError
告诉该列表没有属性拆分。
答案 0 :(得分:8)
str.split
是一种仅适用于str
类型的方法。如何运作在docs:
str.split([sep[, maxsplit]])
使用
sep
作为分隔符字符串,返回字符串中的单词列表。如果maxsplit
被给出,最多maxsplit
分割为。{1}} 完成(因此,列表最多只有maxsplit+1
个元素)。如果 未指定maxsplit
或-1
,则数量没有限制 分裂(所有可能的分裂)。
您想在这里使用的是str.join
:
>>> l = [1, 2, 3, 4]
>>> map(str, l) # Just to demonstrate
['1', '2', '3', '4']
>>> '\t'.join(map(str, l))
'1\t2\t3\t4'
>>>
根据docs:
str.join(iterable)
返回一个字符串,该字符串是可迭代
iterable
中字符串的串联。元素之间的分隔符是字符串 提供这种方法。
在上面的示例中,str.join
获取map(str, l)
返回的字符串列表:
['1', '2', '3', '4']
将所有项目连接在一起,将每个项目分隔\t
。结果是字符串:
'1\t2\t3\t4'
此外,如果您想知道,在上面的示例中使用map
将整数列表转换为字符串列表。另一种方法是使用list comprehension:
>>> l = [1, 2, 3, 4]
>>> '\t'.join([str(x) for x in l])
'1\t2\t3\t4'
>>>
两种解决方案大致相同,但您需要使用其中一种解决方案,因为str.join
需要可迭代的字符串。
答案 1 :(得分:1)
答案 2 :(得分:0)
那不会分裂,加入:'\t'.join(str(i) for i in l)