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

如何将结合集合操作的嵌套for循环合并为单个循环?

将嵌套循环合并为单循环的方法

当然可以,你可以利用笛卡尔积的思路,把两个集合的所有组合一次性生成,从而用单个循环遍历。这里提供两种常用方法:

方法1:使用itertools.product

Python标准库的itertools模块里的product函数可以直接生成两个可迭代对象的笛卡尔积,完美替代嵌套循环:

import itertools

# 生成month和place唯一值的所有组合,单循环遍历
for j, i in itertools.product(set(df.month), set(df.place)):
    print(j, i)

方法2:使用pandas的MultiIndex.from_product

如果习惯用pandas原生方法,可以通过生成多索引来实现:

import pandas as pd

# 基于两列的唯一值生成多索引,再遍历每一组组合
for j, i in pd.MultiIndex.from_product([df.month.unique(), df.place.unique()]):
    print(j, i)

两种方法的输出结果和原嵌套循环一致,只是遍历顺序可能略有不同(原嵌套循环是先固定month再遍历place,product默认按传入顺序生成组合),如果需要严格保持原顺序,调整product的参数顺序即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 13:18:54