我有一个列表中的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"]]
用于拆分的分隔符是","
这方面有什么诀窍吗?
答案 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(' ');