如果x是这个dict中的值... Python

时间:2011-11-11 06:23:35

标签: python dictionary

我想这样做:

d = {1:2, 3:4}
if 4 in d:
    print 'Aha!'

但我想读取值而不是键。什么是Pythonic的方法呢?

2 个答案:

答案 0 :(得分:6)

使用itervalues

d = {1:2, 3:4}
if 4 in d.itervalues():
    print 'Aha!'

请注意,这将比键查找慢得多,因为它可能需要检查字典中的所有值。如果您需要经常执行此操作,可能需要考虑将值存储在set

答案 1 :(得分:3)

字典的本质是,您无法以测试密钥是否存在的方式有效地测试值是否存在。

您需要遍历测试每个值的字典,尽管这可以使用Mark建议的代码透明地完成。如果您有大字典,那么性能可能是一个问题,您可能需要不同的数据结构。