解压缩元素数量可变的元组列表

时间:2018-08-01 06:58:00

标签: python zip tuples unzip

我想解压缩具有以下形式的元组列表zipped

zipped1 = [(a, b, c), (d, e, f), (g, h, i)]

使用

x, y, z = zip(*zipped1)

但是,每个元组中的元素数是可变的;列表也可以像这样:

zipped2 = [(a, b, c, d), (e, f, g, h)]

如何使用同一命令解压缩这两个元组列表?

1 个答案:

答案 0 :(得分:2)

这就是可迭代的目的。如果您事先不知道希望有多少个对象(任何种类),请不要使用单独命名的变量,而是将它们全部放在listtuple或生成器中:

z = ['abcd', 'efgh']
transposed = list(zip(*z))
# [('a', 'e'), ('b', 'f'), ('c', 'g'), ('d', 'h')]

现在,您可以迭代和处理转置矩阵中存在的任何数量的元组。