如何检查字典中是否存在值(Python)

我在python中有以下字典:


d = {'1': 'one', '3': 'three', '2': 'two', '5': 'five', '4': 'four'}

我需要一种方法来查找此字典中是否存在诸如“一个”或“两个”的值。


例如,如果我想知道索引“ 1”是否存在,我只需要键入:


"1" in d

然后python会告诉我这是对还是错,但是我需要做同样的事情,只是要找到一个值是否存在。


白衣染霜花
浏览 4837回答 3
3回答

慕的地8271018

>>> d = {'1': 'one', '3': 'three', '2': 'two', '5': 'five', '4': 'four'}>>> 'one' in d.values()True出于好奇,一些比较时机:>>> T(lambda : 'one' in d.itervalues()).repeat()[0.28107285499572754, 0.29107213020324707, 0.27941107749938965]>>> T(lambda : 'one' in d.values()).repeat()[0.38303399085998535, 0.37257885932922363, 0.37096405029296875]>>> T(lambda : 'one' in d.viewvalues()).repeat()[0.32004380226135254, 0.31716084480285645, 0.3171098232269287]编辑:并且,如果您想知道为什么...原因是上述每个返回的对象类型不同,它可能适合也可能不适合查找操作:>>> type(d.viewvalues())<type 'dict_values'>>>> type(d.values())<type 'list'>>>> type(d.itervalues())<type 'dictionary-valueiterator'>EDIT2:根据注释中的请求...>>> T(lambda : 'four' in d.itervalues()).repeat()[0.41178202629089355, 0.3959040641784668, 0.3970959186553955]>>> T(lambda : 'four' in d.values()).repeat()[0.4631338119506836, 0.43541407585144043, 0.4359898567199707]>>> T(lambda : 'four' in d.viewvalues()).repeat()[0.43414998054504395, 0.4213531017303467, 0.41684913635253906]

慕尼黑的夜晚无繁华

Python字典具有get(key)函数>>> d.get(key)例如,>>> d = {'1': 'one', '3': 'three', '2': 'two', '5': 'five', '4': 'four'}>>> d.get('3')'three'>>> d.get('10')none如果您的密钥不存在,将返回none值。foo = d[key] # raise error if key doesn't existfoo = d.get(key) # return none if key doesn't exist与小于3.0和大于5.0的版本相关的内容。。

蛊毒传说

不同类型检查值是否存在d = {"key1":"value1", "key2":"value2"}"value10" in d.values()&nbsp;>> False如果值列表怎么办test = {'key1': ['value4', 'value5', 'value6'], 'key2': ['value9'], 'key3': ['value6']}"value4" in [x for v in test.values() for x in v]>>True如果带有字符串值的值列表怎么办test = {'key1': ['value4', 'value5', 'value6'], 'key2': ['value9'], 'key3': ['value6'], 'key5':'value10'}values = test.values()"value10" in [x for v in test.values() for x in v] or 'value10' in values>>True
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python