Dictionnaire de tri python par valeur

Dictionnaire de tri python par valeur
Dans Python, un dictionnaire fait référence à une collection non ordonnée d'articles sous la forme de paires de valeurs clés.

Les dictionnaires sont utiles lors du stockage des données cartographiées car chaque clé est associée à sa valeur correspondante.

Bien que les dictionnaires ne soient pas en ordre, les dictionnaires sont triés en utilisant insérer Dans les versions récentes de Python.

Laissez-nous savoir comment nous pouvons trier un dictionnaire en fonction des valeurs.

Fonction triée Python

Nous pouvons utiliser le tri () fonction pour trier un dictionnaire par valeur. La syntaxe de fonction est affichée dans les éléments suivants:

tri (itérable, key = aucun, inverse = false)

Les paramètres de fonction sont illustrés ci-dessous:

  1. itérable - fait référence à un objet itérable tel qu'un dictionnaire, une liste, etc.
  2. clé - se réfère à une fonction qui fonctionne comme la clé du type
  3. inverse - permet à la fonction de trier l'itérable dans l'ordre inverse

Nous pouvons utiliser la fonction triée pour trier un dictionnaire par valeur, comme indiqué dans l'exemple suivant:

db =
'Mysql': 1000,
'Postgresql': 20000,
'MongoDB': 250,
«Sqlite»: 100,
'Redis': 5000

trimed_values ​​= tri (db.items (), key = lambda x: x [1], inverse = true)

Dans l'exemple précédent, nous commençons par créer le dictionnaire que nous souhaitons trier. Le dictionnaire contient le type de base de données comme la clé et le nombre d'enregistrements comme valeur.

Nous utilisons ensuite le tri () fonction pour trier les éléments de notre dictionnaire. Finalement, le db.itme La fonction nous permet d'obtenir les valeurs du dictionnaire en tant que liste itérable.

Cela supprime la nécessité pour nous de référencer les valeurs par les positions d'index.

Nous fournissons une fonction anonyme dans le paramètre clé qui nous permet de trier les valeurs de la liste.

Puisque nous voulons que nos données soient triées du plus grand au plus petit, nous définissons le paramètre inverse sur «vrai».

Maintenant, le code précédent devrait renvoyer une liste avec les valeurs triées. Pour accéder aux éléments, nous pouvons utiliser le code suivant pour la boucle:

pour je dans TROUD_VALUES:

imprimer (i [0], i [1])

Ici, Index 0 de la liste représente la clé du dictionnaire, tandis que Index 1 représente la valeur.

Le code précédent doit revenir comme indiqué ci-dessous:

PostgreSQL 20000
Redis 5000
Mysql 1000
MongoDB 250
Sqlite 100

Trier la fonction avec ItemGetter

Le module d'opérateur Python nous fournit le itemGetter () fonction et nous permet d'obtenir un objet appelable qui récupère un élément de l'opérande spécifié.

En termes simples, le itemGetter (n) La fonction créera un objet appelant et récupérera l'élément nème (index).

Par exemple:

opérateur.itemGetter (3) ('ABCDEFG')

La fonction ci-dessus va récupérer l'élément dans le troisième index de la chaîne fournie. La fonction fonctionne avec tout objet itérable tel que les listes, les tuples, les dictionnaires, etc.

Nous pouvons combiner le itemGetter () Fonction pour trier les valeurs dans un dictionnaire, comme indiqué dans l'exemple suivant:

à partir de l'opérateur Import ItemGetter
tup = trié (db.items (), key = itemGetter (1))
trid_values ​​= key: valeur pour la clé, valeur en tup
imprimer (trid_values)

Nous commençons par importer la fonction ItemGetter à partir du module opérateur dans le code précédent.

Ensuite, nous utilisons le db.articles() Fonction pour obtenir les paires de valeurs clés comme une liste de tuples. Pour récupérer uniquement les valeurs, nous utilisons la fonction ItemGetter et passons l'index de 1 comme paramètre.

Cela devrait renvoyer les valeurs du dictionnaire.

Une fois que nous avons trié la liste, nous pouvons y itérer et créer un nouveau dictionnaire à partir des valeurs triées.

Cela devrait renvoyer un dictionnaire trié comme indiqué dans ce qui suit:

'Sqlite': 100, 'MongoDB': 250, 'Mysql': 1000, 'redis': 5000, 'PostgreSQL': 20000

Notez que l'ordre dans ce domaine est dans l'ordre croissant.

Conclusion

Cet article montre les méthodes de trier un dictionnaire par des valeurs. En utilisant le tri () Fonction, vous pouvez définir le paramètre inverse sur «False» pour trier le dictionnaire par ordre croissant.