获取字典中匹配键的值

七月

我有两个OrderedDict字典,我想在两个字典中检索匹配键的值:

>>> from collections import OrderedDict
>>> d1 = OrderedDict()
>>> d2 = OrderedDict()

>>> d1["A"] = 2
>>> d1["B"] = 3
>>> d1["C"] = 2

>>> d2["D"] = 90
>>> d2["B"] = 11
>>> d2["C"] = 25

>>> # search both dicts and output values where key matches

(3, 11)
(2, 25)
四人
print [(d1[key], d2[key]) for key in d1.viewkeys() & d2]
# [(2, 25), (3, 11)]

d1.viewkeys() & d2用于获取两个词典中都存在的键。一旦我们得到了,只需从两个字典中获得与之对应的值即可。

这之所以有效,是因为根据字典视图对象Python 2.7文档

键视图是类似集合的,因为它们的条目是唯一的且可哈希化。

由于viewkeys已经是集合,因此我们可以直接对它们使用集合操作。

注意:如果您使用的是Python 3.x,则必须使用keys像这样的函数

print([(d1[key], d2[key]) for key in d1.keys() & d2])

因为根据字典视图对象Python 3.x文档

dict.keys(),dict.values()和dict.items()返回的对象是视图对象。

由于keys它本身返回一个视图对象,并且由于它们的条目是唯一且可哈希的,因此可以像set那样使用它。

注意:在Python 2.x中,dict.keys返回键列表。由于我们无法对列表进行设置操作,因此无法使用Python 3.x解决方案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章