首页 > 解决方案 > 有没有一种 Pythonic 方法可以一次遍历两个列表一个元素?

问题描述

我有两个列表:[1, 2, 3] 和 [10, 20, 30]。有没有办法在每个步骤中迭代移动每个列表中的一个元素?例如 (1, 10) (1, 20) (2, 20) (2, 30) (3, 30) 我知道 zip 在每一步中都会在两个列表中移动一个元素,但这不是我想要的

标签: pythonpython-3.x

解决方案


是否如您所愿:

def zip2(l1, l2):
    for i, a in enumerate(l1):
        for b in l2[i:i+2]:
            yield (a, b)
>>> list(zip2(l1, l2))
[(1, 10), (1, 20), (2, 20), (2, 30), (3, 30)]

推荐阅读