Maison >développement back-end >Tutoriel Python >Comment puis-je créer une collection triée et ordonnée à partir d'un dictionnaire Python ?

Comment puis-je créer une collection triée et ordonnée à partir d'un dictionnaire Python ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-28 22:28:16722parcourir

How Can I Create a Sorted, Ordered Collection from a Python Dictionary?

Tri d'un dictionnaire par clé : acquisition d'une collection ordonnée

La nature intrinsèque des dictionnaires de Python n'est pas ordonnée, sauf introduction de Python 3.7. Bien que le tri des paires (clé, valeur) puisse apparaître comme une solution, il est crucial de reconnaître qu'il n'est pas possible de conserver l'ordre de tri lors du stockage des éléments dans un dictionnaire.

Pour établir de manière transparente une collection ordonnée basée sur valeurs clés, l’utilisation de la classe OrderedDict prévaut comme approche optimale. Cette classe possède la capacité unique de conserver la séquence d'insertion de ses éléments :

import collections

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

# Construct an OrderedDict from sorted key-value pairs
od = collections.OrderedDict(sorted(d.items()))

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

Bien que la représentation imprimée d'od puisse varier, elle maintiendra l'ordre souhaité lors des interactions ultérieures :

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

for k, v in od.items():
    print(k, v)  # 1 89, 2 3, 3 0, 4 5

Considérations pour les utilisateurs de Python 3

Les utilisateurs de Python 3 doivent utiliser le .items() méthode au lieu de .iteritems() lors de l'itération dans OrderedDict pour maintenir la compatibilité :

for k, v in od.items():
    print(k, v)  # 1 89, 2 3, 3 0, 4 5

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