检查一个字典的值是否是oth的键

2024-09-26 22:54:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我基本上想检查一个字典中的值是否是另一个字典中的键。在

例如,我有两本字典

a = {armani: jeans, dolce: gabbana}
b = {jeans: robo, jobs: versace}

我编写了代码来进行检查,这样它只获得另一个字典中的键值。所以在这个例子中,我只想显示{armani: robo},因为牛仔裤已经在这两种衣服里了。所以像牛仔裤在第二本词典中的价值,就成了新的最终词典的主要价值

代码如下:

^{pr2}$

但是它不起作用,我不知道如何检查这个值是否是另一个列表中的键


Tags: 代码字典jobs例子键值价值robo衣服
3条回答

或者,可以使用“设置交集”进行过滤。在

a = {'armani': 'jeans', 'dolce': 'gabbana'}
b = {'jeans': 'robo', 'jobs': 'versace'}
c = set(a.values()).intersection(b)
d = {k:b[k] for k in c}

# or as a one-liner
e = {k:b[k] for k in set(a.values()).intersection(b)}

这可能比在整本字典里循环要快。在

我认为你需要:

a = {"armani": "jeans", "dolce": "gabbana"}
b = {"jeans": "robo", "jobs": "versace"}

res = {k1:v2 for k1,v1 in a.items() for k2,v2 in b.items() if v1 ==k2}

print(res)

输出:

^{pr2}$

这应该是有效的:

{k:b[v] for k,v in a.items() if v in b}

你只是少了两个元素:

  1. 您不需要编写if v in b.items(),因为Python将if v in b解释为“如果v在b的键中”。在
  2. 您不需要将k映射到v本身,而是映射到b中v的值,即b[v]。在

相关问题 更多 >

    热门问题