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

1 投票
1 回答
1025 浏览
提问于 2025-04-15 15:39

我有一个在运行时创建的二维列表(每一维的条目数量都是未知的)。比如说:

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 是类似的。

撰写回答