我有下面的python字典:
d = {'1': 'one', '3': 'three', '2': 'two', '5': 'five', '4': 'four'}
我需要一种方法来查找这个字典中是否存在诸如“1”或“2”这样的值。
例如,如果我想知道索引“1”是否存在,我只需要输入:
"1" in d
然后python会告诉我这是真还是假,但是我需要做同样的事情,除了找到一个值是否存在。
我有下面的python字典:
d = {'1': 'one', '3': 'three', '2': 'two', '5': 'five', '4': 'four'}
我需要一种方法来查找这个字典中是否存在诸如“1”或“2”这样的值。
例如,如果我想知道索引“1”是否存在,我只需要输入:
"1" in d
然后python会告诉我这是真还是假,但是我需要做同样的事情,除了找到一个值是否存在。
当前回答
不同类型来检查值是否存在
d = {"key1":"value1", "key2":"value2"}
"value10" in d.values()
>> 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
其他回答
在Python 3中,您可以使用字典的values()函数。它返回值的视图对象。这又可以传递给iter函数,该函数返回一个迭代器对象。迭代器可以用in检查,像这样,
'one' in iter(d.values())
或者您可以直接使用视图对象,因为它类似于列表
'one' in d.values()
不同类型来检查值是否存在
d = {"key1":"value1", "key2":"value2"}
"value10" in d.values()
>> 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
你可以用这个:
d = {'1': 'one', '3': 'three', '2': 'two', '5': 'five', '4': 'four'}
print("one" in d.values)
或者你可以使用任何函数:
print(any([True for i,j in d1.items() if j == "one"]))
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 exist
foo = d.get(key) # return None if key doesn't exist
与版本小于3.0和大于5.0相关的内容。
使用字典视图:
if x in d.viewvalues():
dosomething()..