Как получить ключ из нескольких значений? - PullRequest
0 голосов
/ 06 мая 2019

Я бы хотел найти ключ от одного значения.Но ключ имеет несколько значений.

Я не могу найти ключ, используя обычный способ найти ключ по значению.

Я уже пробовал dict.items () и dict.iterms () вместо dict.iteritems ()

Но не работает.

dict = {'key1': ["value1",  "value2"],
       'key2': ["value3", "value4"] }

l = list()
for k, v in dict.iteritems():
    if 'value3' in v:
        l.append(k)
print(l)

Мне нравится получать ключ от одного значения.Например, если я введу значение «value3», выведите «key2»

Ответы [ 2 ]

1 голос
/ 06 мая 2019

Избегайте использования ключевого слова dict в качестве названия словаря.

Вы можете изменить диктовку key -> values на диктовку value -> key:

>>> d = {'key1': ["value1",  "value2"], 'key2': ["value3", "value4"] }
>>> e = {v: k for k, vs in d.items() for v in vs}
>>> e
{'value1': 'key1', 'value2': 'key1', 'value3': 'key2', 'value4': 'key2'}
>>> e['value3']
'key2'
1 голос
/ 06 мая 2019

dict.items() определенно должно работать.

>>> foo = {'a': 'A', 'b': 'B'}
>>> foo.items()
dict_items([('a', 'A'), ('b', 'B')])
>>> for k, v in foo.items():
...   print(k, v)
...
a A
b B
...