Maison > développement back-end > Tutoriel Python > Comment conserver l'ordre des clés dans les dictionnaires Python ?

Comment conserver l'ordre des clés dans les dictionnaires Python ?

DDD
Libérer: 2024-12-27 07:12:08
original
664 Les gens l'ont consulté

How Do I Preserve Key Order in Python Dictionaries?

Préserver l'ordre dans les dictionnaires

Problème

Vous définissez un dictionnaire dans un ordre spécifique et souhaitez maintenir cet ordre lorsque vous y accédez ou que vous le parcourez.

Solution : Ordre d'insertion dans Python 3.6

Commencer avec Python 3.6, les dictionnaires conservent intrinsèquement l'ordre d'insertion par défaut. Ceci est réalisé à l'aide d'une table de hachage basée sur un tableau où les clés et les valeurs sont stockées dans l'ordre dans lequel elles sont ajoutées.

Par exemple, la déclaration de dictionnaire suivante conservera l'ordre des clés :

d = {'ac': 33, 'gw': 20, 'ap': 102, 'za': 321, 'bs': 10}
Copier après la connexion

Ce comportement était initialement un détail d'implémentation dans Python 3.6. Cependant, dans Python 3.7, il est devenu une spécification de langage, garantissant que toutes les implémentations Python maintiennent l'ordre des dictionnaires.

Cas d'utilisation de la préservation de l'ordre

L'utilisation de dictionnaires avec un ordre préservé peut être bénéfique dans les applications où le l'ordre des clés et des valeurs est important, comme :

  • Mappage des horodatages aux événements par ordre chronologique order
  • Stockage des préférences utilisateur dans l'ordre dans lequel elles ont été définies
  • Représentation de files d'attente ou de piles

Alternative : OrderedDict

Alors que les dictionnaires en Python 3.6 préservent ordre, vous pouvez toujours rencontrer des situations dans lesquelles les fonctionnalités supplémentaires de la classe collections.OrderedDict() sont utiles. Il offre des fonctionnalités telles que :

  • Réversibilité : il peut être itéré dans l'ordre direct et inverse.
  • Réorganisation : vous pouvez réorganiser les éléments à l'aide de la méthode move_to_end().

Conclusion

Python 3.6 et les versions ultérieures intègrent par défaut l'ordre d'insertion dans les dictionnaires, fournissant gestion pratique et prévisible des paires clé-valeur dans leur séquence déclarée. Cependant, pour des besoins spécifiques où des dictionnaires réversibles ou réorganisables sont nécessaires, la classe OrderedDict reste une option viable.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal