我想这样做:
d = {1:2, 3:4}
if 4 in d:
print 'Aha!'
但我想读取值而不是键。什么是Pythonic的方法呢?
答案 0 :(得分:6)
使用itervalues
:
d = {1:2, 3:4}
if 4 in d.itervalues():
print 'Aha!'
请注意,这将比键查找慢得多,因为它可能需要检查字典中的所有值。如果您需要经常执行此操作,可能需要考虑将值存储在set
。
答案 1 :(得分:3)
字典的本质是,您无法以测试密钥是否存在的方式有效地测试值是否存在。
您需要遍历测试每个值的字典,尽管这可以使用Mark建议的代码透明地完成。如果您有大字典,那么性能可能是一个问题,您可能需要不同的数据结构。