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

tea*_*eef 0 python string list

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

要从字符串创建列表:

s='1\t2\t3\t4'
Run Code Online (Sandbox Code Playgroud)

我们用:

s.split('\t',-1)
Run Code Online (Sandbox Code Playgroud)

我尝试将split函数用于列表:

l=[1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

得到一个字符串:

s='1\t2\t3\t4'
Run Code Online (Sandbox Code Playgroud)

但我AttributeError知道列表没有属性拆分.

iCo*_*dez 8

str.split是一种仅在str类型上可用的方法.它的工作原理在文档中解释:

str.split([sep[, maxsplit]])

使用sep分隔符字符串返回字符串中单词的列表.如果 maxsplit给出,则最多maxsplit完成拆分(因此,列表将具有最多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'
>>>
Run Code Online (Sandbox Code Playgroud)

根据文件:

str.join(iterable)

返回一个字符串,该字符串是iterable中字符串的串联iterable.元素之间的分隔符是提供此方法的字符串.

在上面的示例中,str.join获取返回的字符串列表map(str, l):

['1', '2', '3', '4']
Run Code Online (Sandbox Code Playgroud)

并将所有项目连接在一起,将每个项目分开\t.结果是字符串:

'1\t2\t3\t4'
Run Code Online (Sandbox Code Playgroud)

此外,如果您想知道,map正在上面的示例中使用将整数列表转换为字符串列表.另一种方法是使用列表理解:

>>> l = [1, 2, 3, 4]
>>> '\t'.join([str(x) for x in l])
'1\t2\t3\t4'
>>>
Run Code Online (Sandbox Code Playgroud)

两种解决方案大致相同,但您需要使用其中一种,因为str.join需要可迭代的字符串.