首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查,以确定一个数据中的值是否完全相同?

如何检查,以确定一个数据中的值是否完全相同?
EN

Stack Overflow用户
提问于 2020-05-14 09:45:29
回答 3查看 155关注 0票数 2

我目前有一个带有key:string的字典string,而值是另一个dict

d 字典值中,如何检查哪些键和值都是相同的?

示例字典:

合子书,合子书,合子书是关键。可能有三把以上的钥匙,但我现在只放了两把。然后d的值是另一个具有{文件名: number}的dict。

代码语言:javascript
复制
d = {"zybook": 
        {
         "noodle.json": 5,
         "testing.json": 1,
         "none.json": 5
        },
    "zybooks": 
        {
         "noodle.json": 5,
         "ok.json": 1
        },
    "zybookz":
        {
         "noodle.json": 5
        }
    }

预期输出:

因为{"noodle.json":5} {"noodle.json":5}在zybook、zybooks和zybookz中都是相同的,所以输出将创建另一个具有所有3个匹配的字典。

代码语言:javascript
复制
{"noodle.json": 5}

我的尝试:

我真的不知道该怎么处理这个问题。

代码语言:javascript
复制
d = {"zybook": { "noodle.json": 5, "testing.json": 1, "none.json": 5},
    "zybooks": {"noodle.json": 5, "ok.json": 1},
    "zybookz": {"noodle.json": 5}
}

for key, value in d.items():
    for k, v in value.items():
        if     
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-05-14 10:02:09

代码语言:javascript
复制
from functools import reduce
sets = (set(val.items()) for val in d.values())
desired = dict(reduce(set.intersection, sets))
print(desired)
# {'noodle.json': 5}

我们首先从每个字典的file_name:num对开始。然后,reduce累积查找每个集合,并通过这些集合的相交将它们简化为期望的结果。最后,根据需要转换为dict

票数 2
EN

Stack Overflow用户

发布于 2020-05-14 10:01:22

试试这个:

代码语言:javascript
复制
from collections import Counter

res = {z[0]: z[1] for z, count in Counter([(k, v) for x in d for k, v in d[x].items()]).items() if count == len(d)}
票数 2
EN

Stack Overflow用户

发布于 2020-05-14 10:45:30

仅使用嵌入式Python方法

代码语言:javascript
复制
new = []
for v in d.values():
    new+=list(v.items())
# [('noodle.json', 5), ('testing.json', 1), ('none.json', 5), ('noodle.json', 5), ('ok.json', 1)]

cnt_dict = {v:new.count(v) for v in new}
# {('noodle.json', 5): 3, ('testing.json', 1): 1, ('none.json', 5): 1, ('ok.json', 1): 1}

d2 = {k[0]:k[1] for k,v in cnt_dict.items() if v > 1}
print(d2)
# {'noodle.json': 5}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61794208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档