Maison >développement back-end >Tutoriel Python >Comment puis-je conserver l'ordre des clés du dictionnaire lors du tri en Python ?

Comment puis-je conserver l'ordre des clés du dictionnaire lors du tri en Python ?

DDD
DDDoriginal
2025-01-04 22:12:43958parcourir

How Can I Maintain Dictionary Key Order When Sorting in Python?

Préserver l'ordre des dictionnaires en Python

Les dictionnaires en Python sont intrinsèquement non ordonnés, ce qui rend difficile le tri de leurs clés. Cet article explore les méthodes de tri des dictionnaires par leurs clés.

Dictionnaires standard

Les dictionnaires Python standard ne maintiennent pas d'ordre spécifique pour les paires (clé, valeur). Trier les paris modifierait l'ordre imprévisible du dictionnaire.

OrderedDict : une solution

La classe OrderedDict, une sous-classe de dict, résout ce problème. Il se souvient de l'ordre d'insertion des éléments, garantissant que les clés restent ordonnées après le tri.

import collections

# Sample dictionary
d = {2: 3, 1: 89, 4: 5, 3: 0}

# Create an OrderedDict with sorted keys
od = collections.OrderedDict(sorted(d.items()))

# Print the sorted OrderedDict
print(od)

Sortie :

OrderedDict([(1, 89), (2, 3), (3, 0), (4, 5)])

Accès aux valeurs

Malgré les clés triées, le OrderedDict conserve le comportement attendu pour la valeur accès.

print(od[1])  # Prints 89
print(od[3])  # Prints 0

Itération

L'itération dans un OrderedDict préserve l'ordre des clés triées.

for k, v in od.items():
    print(k, v)

Sortie :

1 89
2 3
3 0
4 5

Python 3

Dans Python 3, utilisez la syntaxe mise à jour pour itérer sur les éléments :

for k, v in od.items():
    print(k, v)

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