将列表中的字符串值拆分为单个值,Python

时间:2019-06-21 21:36:48

标签: python list

我有一个值列表,其中一些值是用逗号分隔的单词,但被视为单个字符串,如下所示:

l = ["a",
     "b,c",
     "d,e,f"]

#end result should be
#new_list = ['a','b','c','d','e','f']

我想拆分这些字符串,并想知道是否有一个衬里或短的东西可以进行这种突变。到目前为止,我一直在考虑仅遍历l.split(',') -然后合并所有元素,但这似乎需要一段时间才能运行。

4 个答案:

答案 0 :(得分:1)

import itertools
new_list = list(itertools.chain(*[x.split(',') for x in l]))

print(new_list)
>>> ['a', 'b', 'c', 'd', 'e', 'f']

答案 1 :(得分:1)

有些异常,但是您可以使用join ,split来使用所有元素,

l = ["a",
     "b,c",
     "d,e,f"]

newList = ','.join(l).split(',')
print(newList)

输出:

['a', 'b', 'c', 'd', 'e', 'f']

答案 2 :(得分:0)

不完全是单线,而是两行:

>>> l = ["a",
     "b,c",
     "d,e,f"]
>>> ll =[]
>>> [ll.extend(x.split(',')) for x in l]
[None, None, None]
>>> ll
['a', 'b', 'c', 'd', 'e', 'f']

由于x.split(',')不能在理解内解包,因此需要单独创建累加器。

答案 3 :(得分:0)

这里是使用(嵌套)列表理解的单线:

new_list = [item for csv in l for item in csv.split(',')]

看到它运行here