Давайте посмотрим, как получить ключ по значению в словаре Python.
Способ 1: Использование list.index()
Метод index() возвращает индекс соответствующего значения в списке. Ниже приведена реализация того, как использовать метод index() для извлечения ключа словаря с использованием значения.
# creating a new dictionary
my_dict ={"java":100, "python":112, "c":11}
# list out keys and values separately
key_list = list(my_dict.keys())
val_list = list(my_dict.values())
# print key with val 100
position = val_list.index(100)
print(key_list[position])
# print key with val 112
position = val_list.index(112)
print(key_list[position])
# one-liner
print(list(my_dict.keys())[list(my_dict.values()).index(112)])
Выход:
java
python
python
Пояснение:
Используемый здесь подход заключается в поиске двух отдельных списков ключей и значений. Затем извлеките ключ, используя позициюзначения в списке val_list. Поскольку ключ в любой позиции N в списке ключей будет иметь соответствующее значение в позиции N в списке значений.
Метод № 2: С помощью функции dict.item()
Мы также можем извлечь ключ из значения, сопоставив все значения, а затем распечатать соответствующий ключ с заданным значением.
# function to return key for any value
def get_key(val):
for key, value in my_dict.items():
if val == value:
return key
return "key doesn't exist"
# Driver Code
my_dict ={"java":100, "python":112, "c":11}
print(get_key(100))
print(get_key(11))
Выход:
java
c