在Python中,如何将元组列表加入一个列表?

时间:2013-03-07 10:48:44

标签: python tuples

关注我之前的问题How to group list items into tuple?

如果我有一个元组列表,例如

a = [(1,3),(5,4)]

如何解压缩元组并将其重新格式化为单个列表

b = [1,3,5,4]

我认为这也与iter函数有关,但我真的不知道如何做到这一点。请赐教。

5 个答案:

答案 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