当前位置: 首页 > 面试题库 >

将Python词典排列组合到词典列表中

闾丘鸣
2023-03-14
问题内容

给定一个像这样的字典:

{
    '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脚本中,我有一个字典列表字典。(实际上,它会更深入一点,但该级别不涉及此问题。)我想将所有这些内容整理成一个很长的列表,扔掉所有的字典键。 因此我想转型 至 我可能可以设置一个map-reduce来迭代外部词典的各项,以从每个子词典构建一个子列表,然后将所有子列表连接在一起。 但这对于大型数据集似乎效率不高,因为中间的数据结构

  • 问题内容: 我需要合并多个词典,例如: 随着A B C和D作为树的叶子像 词典的级别(深度)未知,可能是 在我的情况下,它代表目录/文件结构,其中节点为docs,而节点为文件。 我想将它们合并以获得: 我不确定如何使用Python轻松做到这一点。 问题答案: 这实际上是非常棘手的-特别是如果你希望在事物不一致时收到有用的错误消息,同时正确地接受重复但一致的条目(这里没有其他答案了……)。 假设你没

  • 问题内容: 我有一个看起来像这样的csv: 我想制作一个以类别为键的字典,并以剩余数据作为值的字典列表。所以它看起来像这样: (此处缩进以提高可读性)。 我像下面的代码片段一样尝试了一下,但是到那儿我什么也没得到: 问题答案: 使用:

  • 在我的python-flask应用程序中,我将https://github.com/rochacbruno/flasgger用于swagger。我需要在参数值中发送一个字典(或json)数组。但是我在swagger的文档(https://swagger . io/docs/specification/2-0/descripting-parameters/)中找不到任何这样的类型。对于用户如何实现这

  • 问题内容: 我在这里浏览了一些问题,但这些问题似乎都不是我的问题。假设我有2个字典,它们是dict1 和字典2 我正在编写一个程序,需要将它们结合到一个字典finaldict中 非常感谢您的帮助,我一直在努力,现在已经一无所获 问题答案: 这是通用版本。即使只有键之一存在键,也可以用它来创建一个以值作为列表的字典。 输出量 如果您使用的是Python 2,则必须像这样更改for循环:

  • 问题内容: 我有一个csv文件 我想从此csv创建字典列表。 输出为: 我怎样才能做到这一点? 问题答案: 用途: 将导致: