编写通用脚本遍历任意结构字典的数组组合并调用函数
通用字典元素组合遍历与函数调用方案
核心思路
利用Python标准库itertools.product生成字典内所有数组的笛卡尔积,自动遍历所有元素组合,无需手动编写嵌套循环,适配任意结构的{key: array}型字典。
实现代码
import itertools def my_fun(temp_dict): # 此处替换为你实际的my_fun业务逻辑,示例仅打印临时字典 print(temp_dict) def process_dict(input_dict): # 提取字典的键列表与对应数组列表 keys = list(input_dict.keys()) arrays = list(input_dict.values()) # 生成所有数组元素的笛卡尔积组合 for combo in itertools.product(*arrays): # 构造临时字典 temp_dict = dict(zip(keys, combo)) # 调用目标函数 my_fun(temp_dict)
使用示例
假设有测试字典:
dict_1 = { 'color': ['red', 'blue'], 'size': ['S', 'M'], 'style': ['casual', 'formal'] } # 调用通用处理函数 process_dict(dict_1)
运行后会自动生成并传入全部8种组合的临时字典到my_fun。
方案优势
- 完全通用:无论字典包含多少键、每个数组长度如何,都能自动处理所有元素组合
- 避免重复编码:200个不同结构的字典只需调用同一个
process_dict函数即可 - 代码简洁:依赖标准库工具替代手动多层嵌套循环,可读性与维护性更强
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

