Comment trier un dictionnaire par clé et valeur en Python ?

2 avr. 2020 – 4 min de lecture

Bonjour à tous. Aujourd’hui, je vais donner de petits conseils sur le tri des dictionnaires en Python (Python3). Comme nous le savons tous, les dictionnaires sont intrinsèquement sans ordre, mais d’autres types, tels que la liste et les tuples ne le sont pas. Il n’est pas possible de trier un dictionnaire, mais nous pouvons faire une représentation d’un dictionnaire qui est trié. Donc Vous avez besoin d’un type de données ordonné pour représenter les clés ou les valeurs triées, qui sera une liste – probablement une liste de tuples.

Dictionnaire en Python (Source)

.

Processus de tri des dictionnaires

Comme nous pouvons le voir dans la première figure, les dictionnaires en python sont un ensemble de paires clé-valeur où chaque paire clé-valeur est appelée un élément. Concentrons-nous maintenant sur le problème principal : Les dictionnaires peuvent être triés par clés ou par valeurs. Comme il est délimité dans la deuxième figure, nous pouvons trier keys(), values(), et items() d’un dictionnaire. Concentrons-nous sur le tri par values()d’abord.

Tri du dictionnaire par valeur

Disons un dictionnaire composé de plusieurs organisations bien connues comme keys() et leur année de fondation comme values(). Nous voulons donc avoir un dictionnaire trié où les éléments de l’organisation la plus ancienne seront le premier élément et l’organisation la plus jeune sera le dernier.

d = {"Apple": 1976, "Microsoft":1975, "Facebook":2004, "Sony":1946, "IBM":1911, "Amazon": 1994 }

Comme nous pouvons le voir dans le dictionnaire d, IBM est l’organisation la plus ancienne donc elle sera la première clé du dictionnaire trié et Facebook sera la dernière.

print(sorted(d.items(), key = lambda kv:kv))
print(sorted(d.items(), key = lambda kv:kv, reverse = True))
print(dict(sorted(d.items(), key = lambda kv:kv)))
sort_d = dict(sorted(d.items(), key = lambda kv:kv))
print(sort_d)

Sortie:



{'IBM': 1911, 'Sony': 1946, 'Microsoft': 1975, 'Apple': 1976, 'Amazon': 1994, 'Facebook': 2004}
{'IBM': 1911, 'Sony': 1946, 'Microsoft': 1975, 'Apple': 1976, 'Amazon': 1994, 'Facebook': 2004}

Puisque nous trions d.items(), qui est une liste de tuples où keys()sont le premier paramètre et values() sont le second paramètre de chaque tuple. Pour trier la liste de tuples, nous avons choisi les valeurs c’est-à-dire le deuxième paramètre de chaque tuple comme clé. Dans la première ligne, la clé est définie comme une lambdafonction où la valeur de la clé est le second paramètre des items. Ce tri créera une liste de tuples triés. nous pouvons simplement en faire un dictionnaire en utilisant la fonction dict() comme indiqué dans la troisième ligne de code. Nous pouvons également inverser le tri qui en résultat crée une liste de tuples avec le plus récent en premier et le plus ancien sera le dernier élément comme indiqué dans la deuxième ligne du code. Nous pouvons également enregistrer le dictionnaire trié sous un autre nom comme indiqué ci-dessus.

Tri du dictionnaire par clé

print(sorted(d.items()))
print(dict(sorted(d.items())))
print(dict(sorted(d.items(), key = lambda kv:kv)))
print(sorted(d.items(), reverse = True))

Sortie:


{'Amazon': 1994, 'Apple': 1976, 'Facebook': 2004, 'IBM': 1911, 'Microsoft': 1975, 'Sony': 1946}
{'Amazon': 1994, 'Apple': 1976, 'Facebook': 2004, 'IBM': 1911, 'Microsoft': 1975, 'Sony': 1946}

Comme nous savons que les keys() ici dans le dictionnaire d sont des chaînes de caractères alors le tri par la clé créera une liste de tuples par ordre alphabétique dans les keys() de chaque élément et en utilisant la fonction dict() le dictionnaire est formé. nous pouvons également utiliser la fonction lambda pour définir la clé qui est presque inutile, j’ai juste montré pour faire une comparaison dans la définition de la clé dans le tri.

C’est tout. S’il vous plaît visitez mon profil pour obtenir plus d’histoires sur l’apprentissage automatique et l’analyse de données. Tout type de suggestions et de critiques est fortement apprécié. Voici mes histoires précédentes basées sur un cours de troisième cycle offert par l’Université Inha, Rep de Corée:

Histoires précédentes:

Partie-1 : Python de base et installation
Partie-2 : Chapitre-2 : Structure de données Python – Type de données
Partie-3 : Déclarations de contrôle (boucles) en Python
Partie:4 : Fonctions Python &Modules
Part:5 : Programmation orientée objet en Python – Schafer &DataCamp.
Part-6 : Les types &de procédure d’apprentissage automatique
Part-7 : Ingénierie des caractéristiques pour l’apprentissage automatique

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.