在python中拆分整个字符串列表

时间:2014-10-22 13:57:21

标签: python string list

我有一个列表中的python字符串列表。

我想在列表中的每个字符串上调用split方法,并将结果存储在另一个列表中而不使用循环,因为列表很长。

EDIT1 这是一个例子

   input = ["a,the,an","b,b,c","people,downvoting,it,must,think,first"]

   output  [["a","the","an"],["b","b","c"],["people","downvoting","it","must","think","first"]]

用于拆分的分隔符是","

这方面有什么诀窍吗?

4 个答案:

答案 0 :(得分:2)

[a.split(',') for a in list]

Sample: ['a,c,b','1,2,3']
Result: [['a','c','b'],['1','2','3']]

如果您想要一个列表中的所有内容,您可以尝试这一点(不确定它的效率)

output = sum([a.split(',') for a in list],[])
Sample: ['a,c,b','1,2,3']
Result: ['a','c','b','1','2','3']

答案 1 :(得分:1)

使用列表推导。

mystrings = ["hello world", "this is", "a list", "of interesting", "strings"]
splitby = " "
mysplits = [x.split(splitby) for x in mystrings]

不知道它是否比for循环表现更好,但你去了。

答案 2 :(得分:1)

如果您想要一个平面列表,而不是列表列表:

from itertools import chain
list_out = list(reduce(chain, [string.split() for string in lists_in]))

答案 3 :(得分:1)

我会将列表转换为字符串,然后将字符串转回带有split函数的列表。 因此只运行一次split函数。

' '.join(['my', 'very', 'long', 'list']).split(' ');