关注我之前的问题How to group list items into tuple?
如果我有一个元组列表,例如
a = [(1,3),(5,4)]
如何解压缩元组并将其重新格式化为单个列表
b = [1,3,5,4]
我认为这也与iter
函数有关,但我真的不知道如何做到这一点。请赐教。
答案 0 :(得分:33)
b = [i for sub in a for i in sub]
这样就可以了。
答案 1 :(得分:8)
In [11]: list(itertools.chain(*a))
Out[11]: [1, 3, 5, 4]
如果您只需要迭代1, 3, 5, 4
,就可以摆脱list()
来电。
答案 2 :(得分:2)
import itertools
b = [i for i in itertools.chain(*[(1,3),(5,4)])]
答案 3 :(得分:2)
只需迭代列表a并解压缩元组:
l = []
for x,y in a:
l.append(x)
l.append(y)
答案 4 :(得分:1)
另一种方式:
a = [(1,3),(5,4)]
b = []
for i in a:
for j in i:
b.append(j)
print b
这只会处理列表中的元组(a)tho。如果你想解析松散的变量,你需要添加if-else语句,比如;
a = [(1,3),(5,4), 23, [21, 22], {'somevalue'}]
b = []
for i in a:
if type(i) == (tuple) or type(i) == (list) or type(i) == (set):
for j in i:
b.append(j)
else:
b.append(i)
print b