python - 将 Python 字典排列组合成字典列表

标签 python dictionary

给定一个看起来像这样的字典:

{
    'Color': ['Red', 'Yellow'],
    'Size': ['Small', 'Medium', 'Large']
}

如何创建一个字典列表来组合第一个字典键的各种值?我想要的是:

[
    {'Color': 'Red', 'Size': 'Small'},
    {'Color': 'Red', 'Size': 'Medium'},
    {'Color': 'Red', 'Size': 'Large'},
    {'Color': 'Yellow', 'Size': 'Small'},
    {'Color': 'Yellow', 'Size': 'Medium'},
    {'Color': 'Yellow', 'Size': 'Large'}
]

最佳答案

我认为您需要笛卡尔积,而不是排列,在这种情况下 itertools.product可以帮助:

>>> from itertools import product
>>> d = {'Color': ['Red', 'Yellow'], 'Size': ['Small', 'Medium', 'Large']}
>>> [dict(zip(d, v)) for v in product(*d.values())]
[{'Color': 'Red', 'Size': 'Small'}, {'Color': 'Red', 'Size': 'Medium'}, {'Color': 'Red', 'Size': 'Large'}, {'Color': 'Yellow', 'Size': 'Small'}, {'Color': 'Yellow', 'Size': 'Medium'}, {'Color': 'Yellow', 'Size': 'Large'}]

关于python - 将 Python 字典排列组合成字典列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15211568/

相关文章:

python - 根据列表中每个元组的长度克隆列表中的元组

swift - 在词典词典中设置单个元素

Swift:词典词典,无法获取下标

python - 为什么 Tkinter 的 askdirectory() 在 Windows 上返回正斜杠?

python按时间顺序排序OrderedDict键

python - 如何初始化先验未知数量的列表

python - 如何通过添加其他表中的对象来操作Python字典

python 正则表达式 : How can I have pattern searching for multiple pattern strings?

python - 在 python 中使用参数 - 值错误

python - Keras Tensorflow val_acc始终为1或从0跳到1