Maison > Article > développement back-end > Comment l'ordre des clés dans les dictionnaires Python a-t-il changé au fil du temps ?
Comprendre l'ordre des clés dans les dictionnaires : un historique
Les dictionnaires, une structure de données fondamentale en Python, représentent des mappages entre les clés et les valeurs. Dans les anciennes versions de Python, l'ordre des clés dans un dictionnaire était déterminé par les mécanismes internes de l'implémentation, conduisant à des résultats inattendus.
Considérez le code suivant :
d = {'a': 0, 'b': 1, 'c': 2} l = d.keys() print(l)
Ce code s'affiche [ 'a', 'c', 'b'], laissant les utilisateurs perplexes quant à la façon dont l'ordre des clés est déterminé.
Python 3.7
Dans Python 3.7, le La nature de la préservation de l'ordre d'insertion des dictionnaires est devenue une partie officielle de la spécification linguistique. Cela signifie que les dictionnaires conservent désormais l'ordre dans lequel les clés sont insérées, offrant ainsi un comportement cohérent et prévisible.
Python 3.6 (CPython)
Pour l'implémentation CPython de Python , les dictionnaires ont introduit la préservation de l'ordre d'insertion dans la version 3.6. Cependant, il est important de noter qu'il s'agit d'un détail d'implémentation et peut ne pas s'appliquer à d'autres implémentations de Python.
Python >=2.7 et <3.6
Dans Dans les anciennes versions de Python (2.7 et inférieures), les dictionnaires ne garantissaient pas l'ordre des clés. Pour maintenir l'ordre d'insertion, les utilisateurs peuvent s'appuyer sur la classe collections.OrderedDict, qui préserve explicitement l'ordre des clés insérées.
Conclusion
L'ordre des clés dans les dictionnaires a évolué au cours de l’histoire de Python. Dans les versions modernes (3.7 ), les dictionnaires sont ordonnés par insertion par défaut, ce qui permet de récupérer de manière fiable les clés dans leur ordre attendu. Pour les anciennes versions de Python, la classe collections.OrderedDict fournit une solution fiable pour maintenir l'ordre des clés.
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!