我有 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 组合,从而允许序列结束。
