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

Python如何遍历多列表全参数组合循环调用多参数函数

实现方法

你需要的遍历逻辑是三层嵌套优先级:最外层遍历分类(category)、中间层遍历颜色(color)、最内层遍历年龄(age),以下两种方法都可以严格按照指定顺序跑完所有参数组合,同时收集返回结果:

方法1:手动写三层嵌套循环(逻辑直观,顺序完全可控)

不需要引入额外依赖,循环层级和你要求的固定顺序完全对应,不会出现顺序错乱:

# 定义参数取值列表
category_list = ['cat', 'dog', 'squirrel']
color_list = ['brown', 'black']
age_list = [1, 2, 3]
all_results = []  # 存储所有组合的函数返回值

# 循环顺序严格匹配需求:外层category -> 中层color -> 内层age
for category in category_list:
    for color in color_list:
        for age_val in age_list:
            return_val = call_function(category, color, age_val)
            all_results.append(return_val)

执行顺序完全符合你的要求:

  • 固定category为'cat'时,先取color为'brown',依次传入age=1、2、3调用函数
  • 再切换color为'black',同样依次传入三个age值调用
  • 后续category切换为'dog'、'squirrel'时,重复上述遍历逻辑

方法2:用标准库itertools.product生成笛卡尔积

Python标准库提供的itertools.product可以快速生成多个可迭代对象的笛卡尔积,只要传入参数的顺序和循环优先级一致,生成的组合顺序和手动嵌套循环完全相同:

from itertools import product

category_list = ['cat', 'dog', 'squirrel']
color_list = ['brown', 'black']
age_list = [1, 2, 3]
all_results = []

# 传入参数顺序必须和优先级一致:先category,再color,最后age
for category, color, age_val in product(category_list, color_list, age_list):
    return_val = call_function(category, color, age_val)
    all_results.append(return_val)

提示:不要随意调换product里的参数传入顺序,否则生成的组合遍历顺序会不符合要求。如果需要验证顺序,可以先把循环里的调用换成print(category, color, age_val)打印参数,确认顺序正确后再跑实际函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 04:09:27