python:在嵌套字典中查找匹配值

标签 python dictionary nested

我对 python 字典和嵌套都不熟悉。

这就是我想要找到的 - 我的对象都具有相同的属性:颜色和高度。我需要比较所有属性并列出所有匹配的属性。

matchList = []
dict = {obj1:{'color': (1,0,0), 'height': 10.6},
        obj2:{'color': (1,0.5,0), 'height': 5},
        obj3:{'color': (1,0.5,0), 'height': 5}, 
        obj4:{'color': (1,0,0), 'height': 10.6}}

我需要找到一种方法来将每个对象进行相互比较,并创建所有匹配对象的嵌套列表。因此,如果 obj1 和 obj4 匹配,并且 obj2 和 3 匹配,我希望这就是我的结果:

matchList = [[obj1, obj4], [obj2, obj3]]

我该如何去做呢?

最佳答案

dict 指的是内置的Python字典类,所以你最好不要重写它。

在以下示例中,我已将字典重命名为 objs:

import itertools as it
keys = sorted(objs.keys(), key=lambda k: objs[k]) # Make sure `objs` with the same value be arranged next to each other
groups = it.groupby(keys, lambda k: d[k]) # so that we can group them by value
match_list = [list(keys) for v, keys in groups]

关于python:在嵌套字典中查找匹配值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20578798/

相关文章:

c++ - Typedef 在模板化类中使用模板化嵌套类

r - 外循环的并行化在 REvolution 中有效,但在普通 R 中无效

python - 列方式总和 V 行方式总和 : Why don't I see a difference using NumPy?

python - 本地开发服务器的谷歌应用程序引擎没有终端输出?

python - 将字典转换为数据框,键作为列名,键的值作为数据框的列值

python - 使用不相等的值列表创建 Pandas 数据框

python - 我可以将 python 与 giraph 一起使用吗?

python - Python网页抓取,如果出现错误,请跳过网址

list - 如何更新列表的一个元素

css - 同一个类不同ID,第n个子样式