Exemples de recherche en python de toutes les clés d'un dictionnaire avec une valeur donnée:
Créer un dictionnaire
Créons un dictionnaire simple:
d = {'George Chandler': 20,
'Scott Respess': 25,
'Chelsea Pineda': 25,
'Carmen Wright': 25,
'Lillian Hirsch': 21,
'Nathaniel Chipman': 21,
'Gladys Patterson': 22,
'Nicholas Mccanna': 21,
'Dwight Mccullough': 22,
'Charles Stanley': 23}
key est le nom complet et la valeur est l'âge.
Find all keys in a dictionary with a given value using a loop
Pour retrouver tous les utilisateurs de 21 ans à partir du dictionnaire d, une solution consiste à parcourir l'ensemble du dictionnaire:
for k,v in d.items():
if v == 21:
print('{} has 21'.format(k))
donne
Lillian Hirsch has 21
Nathaniel Chipman has 21
Nicholas Mccanna has 21
Créer une liste de toutes les clés d'un dictionnaire avec une valeur donnée
Nous pouvons également créer une liste d'utilisateurs de 21 ans:
[k for k,v in d.items() if v == 21]
donne
['Lillian Hirsch', 'Nathaniel Chipman', 'Nicholas Mccanna']
Solutions complémentaires
Une autre solution qui fonctionne si la valeur est unique:
d = {'George Chandler': 20,
'Scott Respess': 25,
'Chelsea Pineda': 25,
'Carmen Wright': 25,
'Lillian Hirsch': 21,
'Nathaniel Chipman': 21,
'Gladys Patterson': 22,
'Nicholas Mccanna': 21,
'Dwight Mccullough': 22,
'Charles Stanley': 23}
list(d.keys())[list(d.values()).index(21)]
donne
'Lillian Hirsch'
Si la valeur n'est pas unique, une solution consiste à utiliser itemgetter
from operator import itemgetter
itemgetter(*[idx for idx,e in enumerate(list(d.values())) if e == 21])(list(d.keys()))
donne
('Lillian Hirsch', 'Nathaniel Chipman', 'Nicholas Mccanna')
Références
- python dictionary: How to get all keys with specific values
- Get key by value in dictionary
- Extraire une liste d'éléments à partir d'une liste d'indices sous python
- Trouver tous les indices d'un élément donné dans une liste python
- How to get the key from value in a dictionary in Python? [duplicate]
- get Key by value, dict, python