Получить ключ для dict, если поисковый элемент в значении (значение представляет собой список) - PullRequest
0 голосов
/ 11 июня 2018

У меня есть диктовка, как показано ниже

{"low":[18,12,9],"medium":[6,3],"high":[2,1],"final":[0]}

, и я хочу найти число в этом диктовке и получить соответствующий ему «ключ»

Например: для 12 мне нужновернуть «низкий».Slly для 2, вернуть «высокий»

Ответы [ 4 ]

0 голосов
/ 11 июня 2018
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)
0 голосов
/ 11 июня 2018

Это задание для 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 На самом деле больше похоже на в неконтролируемом режиме .

0 голосов
/ 11 июня 2018

Для этого вы можете использовать словарь .

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
0 голосов
/ 11 июня 2018
def getKey(number):
    for key, value in d.iteritems():   
        if number in value:
            return key
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...