在Python字典中搜索给定值键的现成函数

时间:2020-01-27 15:08:51

标签: python dictionary

我正在寻找一种方法来查找映射到给定值的字典的所有键(类似于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 个答案:

答案 0 :(得分:1)

基本上没有内置的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])