If p='hello' I need to search the dictionary for the value 'hello' and return the key for 'hello' Is there a certain built in function that could help me do this?
Asked
Active
Viewed 206 times
2 Answers
1
I can't think of a built-in function to do this, but the best possible way would be:
def get_keys(d, x):
return [k for k, v in adict.items() if v == x]
Demo:
>>> example = {'baz': 1, 'foo': 'hello', 'bar': 4, 'qux': 'bye'}
>>> get_keys(example, 'hello')
['foo']
We use a list
here because any one value can occur multiple times in a dictionary- so we need something to hold all of the applicable corresponding keys.
With that in mind, if you only want the first found instance you would just do [0]
on the returned list
.

anon582847382
- 19,907
- 5
- 54
- 57
-
2I believe the `wanted` should not be in quotes – sshashank124 Apr 13 '14 at 14:22
0
You can do:
def get_pos(my_dict, my_str):
pos = []
for i in my_dict:
if my_dict[i] == my_str:
pos.append(i)
return pos
Examples
>>> a = {'apple':'hello', 'banana':'goodbye'}
>>> get_pos(a,'hello')
'apple'

sshashank124
- 31,495
- 9
- 67
- 76