当前位置:  开发笔记 > 编程语言 > 正文

即使键不同,我如何获得两个词典共有的值?

如何解决《即使键不同,我如何获得两个词典共有的值?》经验,为你挑选了1个好方法。

从两个不同的词典开始:

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]

Martijn Piet.. 6

根据值创建集合:

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]

不幸的是,我们不能在这里使用字典视图(它可以像集合一样),因为字典值不需要是唯一的.如果只询问密钥或键值对,则set()不需要调用.



1> Martijn Piet..:

根据值创建集合:

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]

不幸的是,我们不能在这里使用字典视图(它可以像集合一样),因为字典值不需要是唯一的.如果只询问密钥或键值对,则set()不需要调用.

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有