Готовая функция для поиска ключа заданного значения в словаре Python - PullRequest
1 голос
/ 27 января 2020

Я ищу способ найти все ключи словаря, сопоставленные с заданным значением (аналогично тому, что np.where будет делать для массивов). Например:

dict = {'a':12, 'b':0, 'c':0}
print(where(dict, 0))
>>> ['b', 'c']

Очевидно, что я могу сделать это с помощью:

[key for key in dict.keys() if dict[key]==0]

, но я хотел бы знать, существует ли уже функция Python, которая выполняет эту операцию.

Большое спасибо:)

1 Ответ

1 голос
/ 27 января 2020

По существу нет встроенной функции python для ее выполнения. Вы можете использовать filter:

my_dict = {
    'a': 12, 
    'b': 0,
    'c': 0
}
print(list(filter(lambda x: my_dict[x] == 0, my_dict)))

Вы также можете использовать numpy:

keys = np.array(list(my_dict.keys()))
values = np.array(list(my_dict.values()))
print(keys[values == 0])
...