将列表连接到python中的字符串

时间:2014-03-19 18:06:41

标签: python string list

在Python中将列表“拆分”为字符串的最简单方法是什么?

从字符串创建列表:

s='1\t2\t3\t4'

我们使用:

s.split('\t',-1)

我尝试将split功能用于列表:

l=[1,2,3,4]

获取字符串:

s='1\t2\t3\t4'

但我得到AttributeError告诉该列表没有属性拆分。

3 个答案:

答案 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)

你可以这样做。

l = [1, 2, 3, 4]
'\t'.join([str(x) for x in l])

join-Python docs

答案 2 :(得分:0)

那不会分裂,加入:'\t'.join(str(i) for i in l)