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
Libérer: 2025-01-04 22:12:43
original
994 Les gens l'ont consulté

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)
Copier après la connexion

Sortie :

OrderedDict([(1, 89), (2, 3), (3, 0), (4, 5)])
Copier après la connexion

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
Copier après la connexion

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)
Copier après la connexion
Copier après la connexion

Sortie :

1 89
2 3
3 0
4 5
Copier après la connexion

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)
Copier après la connexion
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!

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