You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何同时遍历两个列表,让短列表循环重复匹配长列表?

问题描述

我有两个列表:

test1 = ["1","2","3"]
test2 = ["a","b","c","d","e"]

我希望同时遍历这两个列表,但当test2的长度大于test1时,test1能够重复自身继续匹配。

我尝试过使用zip函数:

for x , y in zip(test1,test2):
    print(x)
    print(y)

但该函数会在test1的所有元素遍历完成后停止,输出如下:

1
a
2
b
3
c

我期望得到的输出是:

1
a
2
b
3
c
1
d
2
e
解决方案

方法1:使用itertools.cycle(推荐)

Python的itertools模块里的cycle函数可以无限重复迭代一个可迭代对象,将它和test2配合zip使用就能实现需求:

from itertools import cycle

test1 = ["1","2","3"]
test2 = ["a","b","c","d","e"]

for x, y in zip(cycle(test1), test2):
    print(x)
    print(y)

这段代码会让test1循环迭代,直到test2的元素全部遍历完成,输出结果完全符合预期。

方法2:手动实现循环逻辑

如果不想引入额外模块,可以通过索引取模的方式手动实现循环匹配:

test1 = ["1","2","3"]
test2 = ["a","b","c","d","e"]
len_test1 = len(test1)

for idx, y in enumerate(test2):
    x = test1[idx % len_test1]
    print(x)
    print(y)

这里利用idx % len_test1的取模运算,让索引在超过test1长度时自动回到开头,从而实现test1元素的重复匹配。

内容的提问来源于stack exchange,提问作者feefewfgwtg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 08:42:03