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



我正在尝试检查字典中是否存在特定值。对于键,一个简单的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
如有任何建议,我将不胜感激,谢谢。

如果要访问字典的值,需要调用dict.values:

if '1' in dictionary.values():

没有必要调用dict.keys,但是:

if 'First' in dictionary.keys():

,因为in操作符在字典上迭代,从而产生它的键。

阅读dict上的文档。字典上的key in d操作符在dict的键中查找键,而不是在其值中查找键。

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

同样,这是一个效率较低的O(字典大小)操作。如果您经常搜索值,则通常应该使用不同的数据结构(可能是排序列表,具体取决于确切的用例)。

最新更新