我想解压缩具有以下形式的元组列表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)]
如何使用同一命令解压缩这两个元组列表?
答案 0 :(得分:2)
这就是可迭代的目的。如果您事先不知道希望有多少个对象(任何种类),请不要使用单独命名的变量,而是将它们全部放在list
,tuple
或生成器中:
z = ['abcd', 'efgh']
transposed = list(zip(*z))
# [('a', 'e'), ('b', 'f'), ('c', 'g'), ('d', 'h')]
现在,您可以迭代和处理转置矩阵中存在的任何数量的元组。