即使键不同,如何获取两个字典的公共值?

2024-05-01 21:21:32 发布

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

从两个不同的词典开始:

dict_a = {'a': 1, 'b': 3, 'c': 4, 'd': 4, 'e': 6}
dict_b = {'d': 1, 'e': 6, 'a': 3, 'v': 7}

即使它们有不同的键,我如何获得公共值?考虑到上述词典,我希望得到以下输出:

common = [1, 3, 6]

Tags: commondict词典
2条回答

从以下值创建集:

list(set(dict_a.values()) & set(dict_b.values()))

这将在两个字典中创建唯一值的交集:

>>> dict_a = {'a': 1, 'b': 3, 'c': 4, 'd': 4, 'e': 6}
>>> dict_b = {'d': 1, 'e': 6, 'a': 3, 'v': 7}
>>> list(set(dict_a.values()) & set(dict_b.values()))
[1, 3, 6]

不幸的是,我们不能在这里使用dictionary views(它可以像集合一样工作),因为字典值不需要唯一。如果您只要求键或键值对,那么set()调用就没有必要了。你知道吗

交集表达式&需要2个集合,但方法对应项可以处理任何iterable,如指令值. 下面是Martijn Pieters解决方案的另一个版本:

list(set(dict_a.values()).intersection(dict_b.values()))

我的2美分:)

相关问题 更多 >