Skip to main content
 首页 » 编程设计

python之将 2 个列表附加到 1 中,并从每次迭代中交替进行

2025年05月04日8wuhuacong

我有 2 个列表

W = ['w1', 'w2']  
D = [1,2,3,4,5,6] 

我想遍历它们以获得最终列表

final = [ [' w1',  1],  ['w2', 2], ['w1', 3], ['w2', 4], ['w1', 5], ['w2', 6]]   

(顺序相同)

我试图遍历 W 和 D

for i in W: 
    for j in D: 
        if j % 2 == 1 and i == 'w1' : 
            final. append ([i, j]  

我的逻辑是除以 %2 以确定它是奇数还是偶数,但它不起作用。

请您参考如下方法:

使用itertools.cycle和 zip .

>>> from itertools import cycle 
>>> W = ['w1', 'w2']  
>>> D = [1,2,3,4,5,6] 
>>> list(x for x in zip(cycle(W), D)) 
[('w1', 1), ('w2', 2), ('w1', 3), ('w2', 4), ('w1', 5), ('w2', 6)] 

那些元素是元组,如果真的很重要,那么我们可以添加一个阶段将它们映射到列表。

稍微解释一下,cycle 创建了一个传递给它的值的无限迭代。因此,它本身将永远产生“w1”、“w2”、“w1”、“w2”等。然后我们可以使用 zip,将它与具有有限长度的 D 组合,从而允许序列结束。