Python如何遍历字典多组值生成指定格式的文件名组合列表
Python 字典多值全组合生成文件名列表实现方案
直接使用Python标准库itertools.product生成多组值的笛卡尔积(即所有排列组合),再按指定格式拼接文件名即可,无需手动计算组合总数,代码简洁不易出错。
完整实现代码
import itertools thisdict = { "V": [20,40,60,80], "F": [0.1,0.2], "T": [4,3] } fileList = [] # 生成所有参数值的全组合 for value_pair in itertools.product(*thisdict.values()): # 按「值+键」的格式拼接每个参数段 param_segment = "_".join(f"{val}{key}" for key, val in zip(thisdict.keys(), value_pair)) fileList.append(f"Run_Name_{param_segment}")
效果验证
- 执行后
len(fileList)输出为16,和422的总组合数一致 - 列表内元素格式完全匹配要求,前两项输出为:
Run_Name_20V_0.1F_4T、Run_Name_20V_0.1F_3T,覆盖所有参数组合
自定义顺序调整
如果Python版本低于3.7(字典不默认保留插入顺序),或者需要调整参数在文件名中的排列顺序,可以手动指定键的遍历顺序,示例代码如下:
import itertools thisdict = { "V": [20,40,60,80], "F": [0.1,0.2], "T": [4,3] } # 手动指定参数拼接顺序 key_order = ["V", "F", "T"] value_groups = [thisdict[key] for key in key_order] # 用列表推导式直接生成结果 fileList = [ f"Run_Name_{'_'.join(f'{val}{key}' for key, val in zip(key_order, comb))}" for comb in itertools.product(*value_groups) ]
内容的提问来源于stack exchange,提问作者Aabhas Singh
相关产品推荐
相关产品推荐

