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

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

Susan Sarandon
Susan Sarandonoriginal
2024-11-29 09:00:12308parcourir

How Do You Preserve Key Order in Python Dictionaries?

Préservation de l'ordre des clés dans les dictionnaires Python

Dans les anciennes versions de Python, l'ordre des clés dans les dictionnaires était souvent imprévisible. Cela pourrait entraîner de la confusion et des résultats incohérents lors de l'accès aux données.

Comment l'ordre des clés du dictionnaire est déterminé

Avant Python 3.6, l'ordre des clés dans les dictionnaires était déterminé par la valeur de hachage des clés. Cela signifiait que l’ordre des clés pouvait changer au fil du temps, même si les valeurs restaient les mêmes. Par exemple, dans le bloc de code que vous avez fourni :

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

print(l)

L'ordre des clés dans la liste résultante l est ['a', 'c', 'b']. Cet ordre n'est pas garanti et pourrait changer dans les futures itérations de la boucle.

Application de l'ordre des clés

Pour garantir que l'ordre des clés est maintenu, plusieurs approches peut être utilisé :

Python 3.7 et Ci-dessus

Depuis Python 3.7, les dictionnaires conservent l'ordre d'insertion par défaut. Cela signifie que vous pouvez compter sur la préservation de l'ordre des clés.

Python 3.6 (CPython)

Pour l'implémentation CPython de Python 3.6, les dictionnaires maintiennent également ordre d'insertion par défaut. Cependant, ce comportement est spécifique à l'implémentation et n'est pas garanti dans les différentes implémentations de Python.

Python 2.7 et versions antérieures

Pour appliquer l'ordre des clés dans les versions de Python antérieures à 3.6 , vous pouvez utiliser la classe collections.OrderedDict. Cette classe préserve spécifiquement l'ordre des clés au fur et à mesure de leur insertion :

from collections import OrderedDict

d = OrderedDict({'a': 0, 'b': 1, 'c': 2})
print(list(d.keys()))  # Output: ['a', 'b', 'c']

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