在Python中动态分解列表为变量
我有一个在运行时创建的二维列表(每一维的条目数量都是未知的)。比如说:
long_list = [ [2, 3, 6], [3, 7, 9] ]
我想要遍历这个列表,获取每个子列表中的第i个条目:
for entry in long_list.iter():
#entry will be [2, 3] then [3, 7] then [6, 9]
我知道Python的itertools.izip_longest()方法可以做到这一点。不过,它需要为每个列表传入不同的变量。
itertools.izip_longest(var1, var2, var3 ...)
那么,我该如何把我的long_list拆分成不同的变量,然后在运行时用这些变量来调用izip_longest()呢?
1 个回答
4
>>> long_list = [ [2, 3, 6], [3, 7, 9] ]
>>> import itertools
>>> for i in itertools.izip_longest(*long_list): # called zip_longest in py3k
print(i)
(2, 3)
(3, 7)
(6, 9)
基本上,你需要在这里使用“解包”这个功能。它的工作方式和 zip
是类似的。