我有一个dict如下
{"low":[18,12,9],"medium":[6,3],"high":[2,1],"final":[0]}
我希望在此词典中搜索一个数字并获取其各自的键#'
例如:对于12岁,我需要返回' low'。 slly for 2,return' high'
答案 0 :(得分:1)
这是next
的工作。
my_d = {"low":[18,12,9],"medium":[6,3],"high":[2,1],"final":[0]}
target = 12
res = next((k for k, v in my_d.items() if target in v), 'N\A')
print(res) # low
请注意,如果您的target
值存在于多个键中,则此代码将在 random 1 中返回其中一个。如果可能是这种情况,并且根据您正在处理的问题,可能更明智地获得所有匹配的密钥。为此,请使用:
res = [k for k, v in my_d.items() if target in v]
1 实际上更像是以不受控制的方式。
答案 1 :(得分:1)
您可以使用词典理解。
dict = {"low":[18,12,9],"medium":[6,3],"high":[2,1],"final":[0]}
key = {k:v for k, v in dict.items() if 12 in v}
输出
In[1]: key.popitem()[0]
Out[1] : 12
答案 2 :(得分:0)
def getKey(number):
for key, value in d.iteritems():
if number in value:
return key
答案 3 :(得分:0)
dict = {"low":[18,12,9],"medium":[6,3],"high":[2,1],"final":[0]}
def search_key(val):
for key, value in dict.iteritems():
for i in value:
if i == val:
print "the key is:"+key
return key
#pass any value for which you want to get the key
search_key(9)