我在运行时创建了2维列表(任一维度中的条目数未知)。例如:
long_list = [ [2, 3, 6], [3, 7, 9] ]
我想通过从long_list中的每个列表中获取第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()?
答案 0 :(得分: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
,它的工作方式类似。