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

如何在Python中同时迭代多个元素?

当然有,下面给你两种常用的实现方法:

方法一:利用切片和range循环

这是最直观的写法,通过range设置步长,每次截取列表的一段切片:

l = [1, 2, 3, 4, 5, 6]
step = 3  # 每次迭代的元素个数

for i in range(0, len(l), step):
    # 截取从i到i+step的切片,转成元组
    chunk = tuple(l[i:i+step])
    # 按要求格式打印
    print(', '.join(map(str, chunk)))

输出结果:

1, 2, 3
4, 5, 6

如果列表长度不是step的整数倍,最后一组会包含剩余的所有元素(比如列表是[1,2,3,4,5],最后一组是(4,5))。

方法二:利用迭代器和zip(更简洁的写法)

借助Python的迭代器特性,用zip(*[iter(l)]*step)可以快速实现分组,这是Python里的经典技巧:

l = [1, 2, 3, 4, 5, 6]
step = 3

# 每次迭代得到包含3个元素的元组
for chunk in zip(*[iter(l)]*step):
    print(', '.join(map(str, chunk)))

输出结果和上面一致。

原理说明

iter(l)创建一个指向列表l的迭代器,[iter(l)]*3生成三个指向同一个迭代器的引用。当zip从这三个迭代器中取元素时,实际上是不断从同一个迭代器里按顺序取元素,每次取3个,自然就实现了连续分组。

如果需要处理列表长度不是step整数倍的场景,且希望最后一组用默认值补全,可以用itertools.zip_longest:

from itertools import zip_longest

l = [1, 2, 3, 4, 5]
step = 3

for chunk in zip_longest(*[iter(l)]*step, fillvalue=''):
    print(', '.join(map(str, chunk)))

输出:

1, 2, 3
4, 5, 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 22:35:10