Trouver des clés à partir de valeurs dans des dictionnaires
Vous avez rencontré un défi en récupérant le nom associé à un âge spécifique dans un dictionnaire Python. Voyons comment vous pouvez y parvenir avec une approche plus efficace.
Le problème
Votre code d'origine tente de parcourir les valeurs du dictionnaire et de les comparer à l'entrée. âge. Cependant, l'itération sur les valeurs ne permet pas à elle seule d'accéder aux clés correspondantes. Cela conduit à l'erreur KeyError rencontrée lorsque vous essayez de récupérer le nom directement.
Solution
Pour trouver la clé associée à une valeur spécifique, utilisez une méthode qui inverse la relation clé-valeur. En Python, les méthodes dict.keys() et dict.values() peuvent être exploitées pour y parvenir.
Python 2.x
mydict = {'george': 16, 'amber': 19} print mydict.keys()[mydict.values().index(16)] # Prints 'george'
En Python 2.x, mydict.values() renvoie une liste de valeurs. En utilisant index(), vous pouvez déterminer la position de la valeur cible dans cette liste. La clé correspondante peut ensuite être récupérée à l'aide de mydict.keys()[index].
Python 3.x
mydict = {'george': 16, 'amber': 19} print(list(mydict.keys())[list(mydict.values()).index(16)]) # Prints 'george'
Dans Python 3.x, les deux dict .keys() et dict.values() renvoient des itérateurs. Pour obtenir une liste, vous devez la lancer explicitement en utilisant list() comme indiqué ci-dessus.
Conclusion
Cette approche vous permet de récupérer efficacement des clés basées sur des valeurs connues dans un dictionnaire Python. N'oubliez pas de prendre en compte la version de Python que vous utilisez, car la syntaxe peut varier légèrement d'une version à l'autre.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!