【问题标题】:Best Way to find Identical Key-Value pairs in List of Dictionaries Python在 Python 字典列表中查找相同键值对的最佳方法
【发布时间】:2017-03-11 19:52:07
【问题描述】:

如果我有一个字典列表,例如

[{'D': 'wet', 'W': 'sun'}, {'D': 'wet', 'W': 'rain'}, {'D': 'wet', 'W': 'sun'}]

检测列表中所有字典之间是否存在相同的键值对的最佳方法是什么。所以在这种情况下, "D" : "Wet" 将是相同的,因为它在字典列表的所有键和值中都是相同的。但是,“W”不会是因为它有更多的 >1 域(太阳和雨都在 W 键的域中)。

【问题讨论】:

    标签: python dictionary key-value


    【解决方案1】:

    您还可以利用集合中内置的交集属性

    dict(set.intersection(*(set(d.items()) for d in dicts)))
    

    【讨论】:

    • 哦酷,不知道set.intersection 接受了可变参数。它甚至没有记录。最后添加dict 也很好。
    • 很高兴我能帮上忙 :)
    【解决方案2】:

    使用 .items() 将每个字典转换为 (key, value) 元组的迭代,将这些迭代转换为集合,然后用交集将它们全部折叠:

    reduce(lambda a, b: a & b,
           (set(d.items()) for d in
            [{'D': 'wet', 'W': 'sun'}, {'D': 'wet', 'W': 'rain'}, {'D': 'wet', 'W': 'sun'}]))
    

    在 Python 3 中,您将需要 from functools import reduce

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-17
      • 1970-01-01
      • 2019-06-15
      相关资源
      最近更新 更多