Maison >développement back-end >Tutoriel Python >Comment Python garantit-il l'ordre des clés dans les dictionnaires ?
Maintenir l'ordre clé/valeur dans les dictionnaires
En Python, les dictionnaires maintiennent intrinsèquement l'ordre d'insertion à partir de la version 3.6. En déclarant un dictionnaire comme suit :
d = {'ac': 33, 'gw': 20, 'ap': 102, 'za': 321, 'bs': 10}
Le dictionnaire résultant conservera les clés dans l'ordre dans lequel elles ont été déclarées. Ce comportement diffère des versions précédentes de Python où l'ordre des clés était aléatoire.
Sous le capot, cette préservation de l'ordre est obtenue grâce à une implémentation optimisée qui utilise des tables de hachage et des tableaux clairsemés pour stocker les paires clé-valeur. Les clés sont essentiellement stockées dans un tableau dans l'ordre dans lequel elles sont ajoutées.
Alors que Python 3.6 considérait la préservation de l'ordre comme un détail d'implémentation, Python 3.7 l'élève au rang de spécification de langage. Par conséquent, toutes les implémentations Python compatibles avec la version 3.7 et supérieure doivent maintenir l'ordre dans leurs dictionnaires. Cette garantie s'étend également à l'itération inverse, qui est prise en charge à partir de Python 3.8.
Malgré l'introduction de dictionnaires préservant l'ordre, la classe collections.OrderedDict() du module collections reste utile dans certains scénarios. Il offre des fonctionnalités supplémentaires telles que la réversibilité et la possibilité de réorganiser les clés à l'aide de la méthode move_to_end().
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!