关于字典:查找某个值python的键

Finding a key for a certain value python

本问题已经有最佳答案,请猛点这里访问。

如果p='hello'我需要在字典中搜索值"hello",然后返回键"hello"是否有某种内置功能可以帮助我做到这一点?


我想不出一个内置函数来实现这一点,但最好的方法是:

1
2
def get_keys(d, x):
    return [k for k, v in adict.items() if v == x]

演示:

1
2
3
>>> example = {'baz': 1, 'foo': 'hello', 'bar': 4, 'qux': 'bye'}
>>> get_keys(example, 'hello')
['foo']

我们在这里使用list,因为任何一个值在字典中都可能出现多次,所以我们需要一些东西来保存所有适用的对应键。

考虑到这一点,如果你只想要第一个被发现的实例,你只需要对返回的list执行[0]


你可以这样做:

1
2
3
4
5
6
def get_pos(my_dict, my_str):
    pos = []
    for i in my_dict:
        if my_dict[i] == my_str:
        pos.append(i)
    return pos

示例

1
2
3
>>> a = {'apple':'hello', 'banana':'goodbye'}
>>> get_pos(a,'hello')
'apple'