在Python中动态地将列表分解为变量

时间:2009-11-04 15:41:11

标签: python reflection list itertools

我在运行时创建了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()?

1 个答案:

答案 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,它的工作方式类似。