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

如何更简洁地实现多层嵌套for循环?

解决多层嵌套循环的简洁遍历方法

首先纠正你提到的错误写法:for i, j in range(10) 会触发ValueError,因为range(10)每次迭代返回单个整数,无法拆包为两个变量,这个写法是不可行的。

针对你的需求——简洁遍历多个数值范围,甚至动态指定遍历层数,Python的标准库itertools.product是最佳选择,它专门用于生成多个可迭代对象的笛卡尔积,完美替代多层嵌套循环:

1. 固定层数的遍历

对应你原来的三层嵌套循环,用product可以写成:

from itertools import product

for i, j, k in product(range(10), repeat=3):
    print(i, j, k)

这里repeat=3表示重复使用同一个可迭代对象(range(10))三次,生成所有0-9的三元组组合,和三层嵌套循环的效果完全一致。

2. 动态指定层数的遍历

如果要实现传入参数(比如4)就遍历4个数值,只需要修改repeat的值:

from itertools import product

n = 4  # 可以替换成任意正整数
for nums in product(range(10), repeat=n):
    print(nums)  # nums是包含4个元素的元组,也可以拆包:for a, b, c, d in ...

当n=4时,这段代码会遍历所有0-9的四元组组合,等价于四层嵌套的for循环。

为什么用product?

  • 代码更简洁,层数越多优势越明显,避免了嵌套缩进带来的可读性问题
  • 性能和嵌套循环相当,甚至在某些场景下更高效
  • 支持传入不同的可迭代对象,比如product(range(5), range(10), range(3))可以生成三个不同范围的组合

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 15:55:19