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

Unzip a list of tuples with variable number of elements

我想解压缩元组列表,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)]

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

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

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

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