Maison > développement back-end > Tutoriel Python > Comment Python gérait-il l'ordre des clés du dictionnaire dans les versions antérieures à 3.7 ?

Comment Python gérait-il l'ordre des clés du dictionnaire dans les versions antérieures à 3.7 ?

Barbara Streisand
Libérer: 2024-11-11 17:48:02
original
937 Les gens l'ont consulté

How did Python handle dictionary key order in versions before 3.7?

Ordre des clés dans les dictionnaires dans les versions précédentes de Python

Lors de la récupération des clés d'un dictionnaire à l'aide de la méthode keys() dans les versions Python antérieures à 3.7, l'ordre de les clés de la liste renvoyée peuvent sembler arbitraires. Cette imprévisibilité découle de la façon dont Python gérait les dictionnaires dans les versions précédentes.

Python 3.7

À partir de Python 3.7, les dictionnaires conservent l'ordre d'insertion par défaut. Cela signifie que les clés de la liste de sortie keys() correspondront à l'ordre dans lequel elles ont été insérées dans le dictionnaire.

Python 3.6 (CPython)

Dans Python 3.6 (en particulier l'implémentation CPython ), les dictionnaires conservent également par défaut l'ordre d'insertion. Cependant, ceci est considéré comme un détail d'implémentation et sa fiabilité dans les différentes implémentations de Python n'est pas garantie.

Python >=2.7 et <3.6

Pour les versions de Python comprises entre 2.7 et 3.6, l'ordre des clés dans la liste keys() est déterminé par une fonction de hachage. La stabilité de cette fonction de hachage n'est pas garantie, donc l'ordre des clés peut varier entre les exécutions, même avec les mêmes données d'entrée.

Pour garantir l'ordre d'insertion dans ces versions antérieures de Python, vous devez utiliser les collections. Classe OrderedDict. Cette classe garantit que les clés seront récupérées dans l'ordre dans lequel elles ont été insérées :

import collections

d = collections.OrderedDict({'a': 0, 'b': 1, 'c': 2})
l = d.keys()

print(l)  # Output: ['a', 'b', 'c']
Copier après la connexion

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal