Skip to main content
 首页 » 编程设计

python之如何让所有排列从字典的每个值列表中选择一个项目

2025年05月04日14artech

friend 们,基本上,我想听写:

fruit_dict = {'oranges':['big','small'],'apples':['green','yellow','red']} 

并通过在不同键的所有值之间进行所有可能的排列来获得以下字典列表:

output_list =  
[ 
{'oranges':'big','apples':'green'}, 
{'oranges':'big','apples':'yellow'}, 
{'oranges':'big','apples':'red'}, 
{'oranges':'small','apples':'green'}, 
{'oranges':'small','apples':'yellow'}, 
{'oranges':'small','apples':'red'} 
] 

怎么做?一百万!

请您参考如下方法:

您要查找的不是排列,而是 Cartesian product .将其视为嵌套循环。

from itertools import product 
 
fruit_dict = {'oranges':['big','small'],'apples':['green','yellow','red']}     
 
keys, values = zip(*fruit_dict.items()) 
print [dict(zip(keys, value_list)) for value_list in product(*values)] 

然后您只需要使用现有键和产品中的每个项目创建一个新字典。