Maison >développement back-end >Tutoriel Python >Comment puis-je trouver efficacement des clés de dictionnaire en fonction de leurs valeurs en Python ?

Comment puis-je trouver efficacement des clés de dictionnaire en fonction de leurs valeurs en Python ?

DDD
DDDoriginal
2024-12-16 15:57:12336parcourir

How Can I Efficiently Find Dictionary Keys Based on Their Values in Python?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn