如何测试/搜索词典中的值

时间:2014-06-19 17:36:40

标签: python dictionary

我试图检查字典中是否存在特定值。似乎使用键,一个简单的if 'x' in 'dictionary'语句可以工作,但不适用于值。

dictionary = {
    'First': '1',
    'Second': '2',
    'Third': '3'
}

if 'First' in dictionary:
    print('First is here')

if '1' in dictionary:
    print('1 is here')

所以明显的逻辑错误是输出只读:

First is here

非常感谢任何建议,谢谢。

2 个答案:

答案 0 :(得分:3)

如果您想访问字典的值,则需要致电dict.values

if '1' in dictionary.values():

然而,没有必要致电dict.keys

if 'First' in dictionary.keys():

因为in运算符遍历字典,从而产生其键。

答案 1 :(得分:2)

阅读docs on dict。字典上的key in d运算符会在dict的键中查找键,而不是其值。

要查看值,请使用value in d.values()

此外,这是一种效率较低的O(dict的大小)操作。如果您不断搜索值,通常应该使用不同的数据结构(可能是排序列表,具体取决于具体的用例)。