>>>Dictionary[key]
上述语句返回“字典”中与“键”相对应的第一个值,但是否有一种函数可以执行相反的操作,即通过其值搜索键?
>>>Dictionary[key]
只需遍历字典项并检查与您的字符串匹配的值。如果匹配,则打印相应的键。
>>> d = {'foo':1,'bar':2}
>>> for k,v in d.items():
if v == 1:
print(k)
foo
d={"a":5, "bf": 55, "asf": 55}
search_key = lambda in_d, val: (k for k,v in in_d.items() if v == val)
for k in search_key(d, 55):
print(k)
# since the lambda returns generator expression you can simply print
# the keys as follows:
print(list(search_key(d, 55)))
# or get the key list
key_list = list(search_key(d, 55))
提供:
asf
bf
first_key = next(search_key(d, 55))
。 - Marcin虽然没有单一的函数,但很容易获取特定值的(可能多个)键:
>>> d = {'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e': 4, 'f': 0, 'g': 1}
>>> [k for k, v in d.items() if v == 1]
['b', 'g']
In [3]: dict_1 = {1:"one", 2:"two"}
In [4]: for number, alphabet in dict_1.items():
...: if alphabet == "two":
...: print number
...:
>>> D1 = {'A':1, 'B':2, 'C':1}
>>> D1['A']
1
>>> for key in D1.keys():
if D1[key] == 1:
print(key)
C
A
def val2key(dict, val):
for k, v in dict.items():
if v == val:
return k
return None
使用列表推导式可以轻松实现:
>>> d = {'a': 1, 'b': 2, 'c': 1}
>>> l = [k for k, v in d.items() if v == 1]
>>> l
['c', 'a']
keys = [k for k, v in my_dict.items() if v == my_value]