Python 2.7 将列表列表中的元素拆分为新元素
我有如下列表:Python 2.7 将列表列表中的元素拆分为新元素,python-2.7,Python 2.7,我有如下列表: lofl = [['3_A', '1_E'], ['1_A', '1_C,1_B'], ['1_B', '1_C']] 我想检查每个元素,并将第二个元素压缩为['1_A'、'1_C'、'1_B']。因此,我的最终输出是 lofl = [['3_A', '1_E'], ['1_A', '1_C', '1_B'], ['1_B', '1_C']] 我尝试了以下方法,但没有成功 deflate = [i for i in tre_exr for j in i str(i).spli
lofl = [['3_A', '1_E'], ['1_A', '1_C,1_B'], ['1_B', '1_C']]
我想检查每个元素,并将第二个元素压缩为['1_A'、'1_C'、'1_B']。因此,我的最终输出是
lofl = [['3_A', '1_E'], ['1_A', '1_C', '1_B'], ['1_B', '1_C']]
我尝试了以下方法,但没有成功
deflate = [i for i in tre_exr for j in i str(i).split(",")]
我得到了无效的语法。有人能告诉我问题出在哪里吗
提前谢谢
Arun我对python有点陌生,所以这需要一点时间来理解!下面是我能想到的最简洁的解决方案
import itertools
lofl = [['3_A', '1_E'], ['1_A', '1_C,1_B'], ['1_B', '1_C']]
new = [list(itertools.chain(*[c.split(',') for c in l])) for l in lofl]
print new
:我对python有点陌生,所以这需要一点了解!下面是我能想到的最简洁的解决方案
import itertools
lofl = [['3_A', '1_E'], ['1_A', '1_C,1_B'], ['1_B', '1_C']]
new = [list(itertools.chain(*[c.split(',') for c in l])) for l in lofl]
print new
:如果你想要一个简单易读的解决方案,我想这是最好的选择
lofl = [['3_A', '1_E'], ['1_A', '1_C,1_B'], ['1_B', '1_C']]
result = []
for item in lofl:
x = []
for i in item:
x += i.split(',')
result.append(x)
>>> result
[['3_A', '1_E'], ['1_A', '1_C', '1_B'], ['1_B', '1_C']]
如果你想要一个简单易读的解决方案,我想这是最好的选择
lofl = [['3_A', '1_E'], ['1_A', '1_C,1_B'], ['1_B', '1_C']]
result = []
for item in lofl:
x = []
for i in item:
x += i.split(',')
result.append(x)
>>> result
[['3_A', '1_E'], ['1_A', '1_C', '1_B'], ['1_B', '1_C']]
你很接近,你只是在列表中加入了一个多余的i;同样,在最后,也就是在列表的开头,你想要的是内部的j,而不是外部的i。此外,无需转换为str: 对于整个列表,您必须将其包装到另一个列表中:
>>> lofl = [['3_A', '1_E'], ['1_A', '1_C,1_B'], ['1_B', '1_C']]
>>> [[j for i in tre_exr for j in i.split(",")] for tre_exr in lofl]
[['3_A', '1_E'], ['1_A', '1_C', '1_B'], ['1_B', '1_C']]
你很接近,你只是在列表中加入了一个多余的i;同样,在最后,也就是在列表的开头,你想要的是内部的j,而不是外部的i。此外,无需转换为str: 对于整个列表,您必须将其包装到另一个列表中:
>>> lofl = [['3_A', '1_E'], ['1_A', '1_C,1_B'], ['1_B', '1_C']]
>>> [[j for i in tre_exr for j in i.split(",")] for tre_exr in lofl]
[['3_A', '1_E'], ['1_A', '1_C', '1_B'], ['1_B', '1_C']]