In Langage de programmation Dernière mise à jourated:
Partager sur:
Logiciel Jira est l'outil de gestion de projet n°1 utilisé par les équipes agiles pour planifier, suivre, publier et prendre en charge d'excellents logiciels.

Dans ce didacticiel, vous apprendrez à trier un dictionnaire Python par sa clé ou sa valeur.

Lorsque vous travaillez avec un dictionnaire en Python, vous devrez parfois trier son contenu, par clé ou par valeur. Comme un dictionnaire Python est un mappage clé-valeur, vous allez créerate un nouveau dictionnaire contenant les clés ou les valeurs triées selon les besoins.

Dans ce tutoriel, nous commencerons par revVoir les bases du dictionnaire Python. Nous apprendrons ensuite à créerate un nouveau dictionnaire dans lequel le contenu est trié par clé ou par valeur, selon les besoins.

Bases du dictionnaire Python, Revvisité

Dictionary est une structure de données intégrée à Python. Il stocke les articles comme paires clé-valeur. Vous pouvez utiliser les touches pour rechercher les valeurs correspondantes. Comme les clés identifient de manière unique les valeurs, il ne doit y avoir aucune répétition de clés.

py_dict = {"Python":"cool!","Learn":True}
py_dict["Python"]
# Output: cool!

py_dict["Learn"]
# Output: True

Fonctionally, un dictionnaire est similaire à une carte de hachage. Il ne s’agit donc pas nécessairement d’une structure de données ordonnée. Vous pouvez accéder au contenu d'un dictionnaire dans n'importe quel endroitbitordre rare, à condition de connaître les clés.

Classement des éléments dans un dictionnaire

Dans les versions antérieures de Python, vous deviez utiliser un OrdonnéDict pour conserver l'ordre des touches. Cependant, à partir de Python 3.7, vous pouvez accéder aux éléments du même ordre dans lequel vous les ajoutez au dictionnaire. 

Maintenant que vous avez appris les bases des dictionnaires Python, apprenons à créerate copies triées du dictionnaire.

⚙️ Notes: Vous devez disposer de Python 3.7 ou later pour que le code de ce didacticiel fonctionne comme prévu. Vous pouvez télécharger le lateère version de Python.

Comment trier un dictionnaire Python par clé

Regardez l'image suivante de la carte des desserts dans un café. Il y a deux colonnes correspondant aux articles du menu et à leurs prix respectifs.

You can represent this in the form of a Python dictionary by collecting the names of items as keys and their prices as values.

Allons-y et créonsate le dictionnaire desserts, comme indiqué ci-dessous.

desserts = {
    "Ice cream":10,
    "Brownies":12,
    "Cheesecake":3,
    "Swiss roll":5,
    "Cookies":4,
    "Cup cake":2
}

Ensuite, créonsate un dictionnaire sorted_desserts, où les desserts sont classés par ordre alphabétique. Dans la version originale desserts dictionnaire, les noms des desserts sont les clés. Vous devez donc trier ces clés par ordre alphabétique pour créerate un nouveau dictionnaire.

Comment accéder aux clés d'un dictionnaire Python

Pour ce faire, nous allons d'abord récupérer les clés du dictionnaire puis les trier par ordre alphabétique.

En Python, vous pouvez utiliser la méthode du dictionnaire intégré .keys() pour obtenir une liste de toutes les clés du dictionnaire.

Appelons le .keys() méthode sur le dessert dictionnaire pour récupérer les clés, comme indiqué ci-dessous.

keys = desserts.keys()
print(keys)

#Output
['Ice cream', 'Brownies', 'Cheesecake', 'Swiss roll', 'Cookies', 
'Cup cake']

Appel de la fonction intégrée de Python sorted() fonction avec une liste comme argument renvoie une nouvelle liste triée.

Ensuite, appelons le sorted() fonction avec la liste keys comme argument et stocker la liste triée dans la variable sorted_keys.

sorted_keys = sorted(keys)
print(sorted_keys)

# Output
['Brownies', 'Cheesecake', 'Cookies', 'Cup cake', 'Ice cream', 'Swiss roll']

Maintenant que nous avons les clés triées par ordre alphabétique, nous pouvons rechercher les valeurs correspondant aux clés dans sorted_keys du desserts dictionnaire, comme indiqué ci-dessous.

sorted_desserts = {}
for key in sorted_keys:
  sorted_desserts[key] = desserts[key]

print(sorted_desserts)

# Output
{'Brownies': 12, 'Cheesecake': 3, 'Cookies': 4, 'Cup cake': 2, 
'Ice cream': 10, 'Swiss roll': 5}

Développons le bloc de code ci-dessus :

  • Initialiser sorted_desserts être un dictionnaire Python vide.
  • Parcourez la liste des clés sorted_keys.
  • Pour chaque clé dans sorted_keys, ajoutez une entrée à sorted_desserts en recherchant la valeur correspondante dans desserts dictionnaire.

Le for une boucle comme celle-ci est considérée comme détaillée. En Python, il existe une alternative plus concise utilisant la compréhension du dictionnaire.

Compréhension du dictionnaire en Python

Python prend en charge l'utilisation de la compréhension du dictionnaire, similaire à compréhension de la liste. La compréhension du dictionnaire vous permet de créerate un nouveau dictionnaire Python avec une seule ligne de code.

▶️ Voici la construction générale pour utiliser la compréhension du dictionnaire en Python.

# 1. when you have both keys and values in two lists: list1, list2
new_dict = {key:value for key,value in zip(list1,list2)}

# 2. when you have the keys, and can look up the values
new_dict = {key:value for key in <iterable>}

Utilisons la deuxième construction dans la cellule ci-dessus : new_dict = {key:value for key in <iterable>} créerate a sorted_desserts dictionnaire.

Dans cet exemple:

  • itérable: la liste sorted_keys
  • key: la clé à laquelle nous accédons en bouclant à travers sorted_keys
  • Plus-value: rechercher la valeur correspondant à la clé dans le dictionnaire des desserts, desserts[key]

En mettant tout cela ensemble, nous avons l'expression pour la compréhension du dictionnaire, comme indiqué ci-dessous.

sorted_desserts = {key:desserts[key] for key in sorted_keys}
print(sorted_desserts)

{'Brownies': 12, 'Cheesecake': 3, 'Cookies': 4, 'Cup cake': 2, 
'Ice cream': 10, 'Swiss roll': 5}

À partir de la sortie ci-dessus, les desserts sont classés par ordre alphabétique dans le sorted_desserts dictionnaire.

Comment trier un dictionnaire Python par valeur

Ensuite, nous apprendrons à trier un dictionnaire Python par ses valeurs.

Dans le desserts dictionnaire, les valeurs correspondent aux prix des desserts. Vous pouvez trier le dictionnaire par prix, par ordre croissant ou décroissant.

▶️ Vous pouvez utiliser la méthode du dictionnaire intégré .items() pour obtenir toutes les paires clé-valeur. Chaque tuple est une paire clé-valeur.

desserts.items()

dict_items([('Ice cream', 10), ('Brownies', 12), ('Cheesecake', 3), 
('Swiss roll', 5), ('Cookies', 4), ('Cup cake', 2)])

Chacun des éléments est un tupleself. Ainsi, vous pouvez également indexer chaque paire clé-valeur pour accéder aux clés et valeurs individuelles.ally.

dict_items = desserts.items()
for item in dict_items:
  print(f"key:{item[0]},value:{item[1]}")

# Output
key:Ice cream,value:10
key:Brownies,value:12
key:Cheesecake,value:3
key:Swiss roll,value:5
key:Cookies,value:4
key:Cup cake,value:2

Comme nous aimerions trier par valeurs, nous utiliserons la méthode ci-dessus pour obtenir la valeur à l'index 1 dans la paire clé-valeur.

Comment trier les valeurs d'un dictionnaire Python par ordre croissant

Cette fois, nous utiliserons le sorted() fonction avec l'option key paramètre. key can be any Python function, a built-in function, a user-defined function, or even a lambda function.

Notes: lambda args: expression est la syntaxe pour définir les fonctions lambda en Python.

Dans cet exemple de tri des desserts par prix, nous avons accès aux éléments du dictionnaire (couples clé-valeur). Nous fixerons key = lambda item:item[1] car nous aimerions trier par la valeur (prix).

As sorted() renvoie une liste par défaut, vous devez explicitement la convertir en une dict, comme indiqué ci-dessous.

sorted_desserts = dict(sorted(desserts.items(), key=lambda item:item[1]))
print(sorted_desserts)

{'Cup cake': 2, 'Cheesecake': 3, 'Cookies': 4, 'Swiss roll': 5, 
'Ice cream': 10, 'Brownies': 12}

You can also rewrite using dictionary comprehension, as discussed earlier.

sorted_desserts = {key:value for key, value in sorted(desserts.items(), 
key=lambda item:item[1])}

print(sorted_desserts)

# Output
{'Cup cake': 2, 'Cheesecake': 3, 'Cookies': 4, 'Swiss roll': 5, 
'Ice cream': 10, 'Brownies': 12}

In sorted_desserts, Cup Cake au prix de 2 $ est le premier article et Brownies au prix de 12 $ est le dernier article.

Comment trier les valeurs d'un dictionnaire Python par ordre décroissant

Si vous souhaitez trier les prix par ordre décroissant, vous pouvez définir l'option facultative revremplacer le paramètre par True, comme expliqué ci-dessous.

sorted_desserts = dict(sorted(desserts.items(), key=lambda item:item[1], 
reverse=True))
print(sorted_desserts)

# Output
{'Brownies': 12, 'Ice cream': 10, 'Swiss roll': 5, 'Cookies': 4, 
'Cheesecake': 3, 'Cup cake': 2}

Maintenant, sorted_desserts a été trié par ordre décroissant de prix, en commençant par le dessert le plus cher Brownies coûte 12 $.

Récapitulation

Résumons rapidement tout ce que nous avons appris dans ce tutoriel.

  • Un dictionnaire Python stocke les données dans des paires clé-valeur ; les clés doivent toutes être uniques.
  • Dans le process de trier un dictionnaire par clé ou par valeur, nous créonsate un nouveau dictionnaire trié selon les besoins.
  • Vous pouvez utiliser les méthodes de dictionnaire intégrées, .clés() et le .éléments() pour récupérer toutes les clés et les paires clé-valeur, respectivement.
  • Vous pouvez utiliser le trié () fonction avec les paramètres facultatifs key et le revétreindre pour obtenir le tri souhaité.
Partager sur:
  • Bala Priya C
    Auteur
    Bala Priya est développeur et technicien writer originaire d'Inde avec plus de trois ans d'expérience dans le domaine de la rédaction de contenu technique. Elle partage son apprentissage avec la communauté des développeurs en créant des didacticiels techniques, des guides pratiques, et bien plus encore….

Merci à nos commanditaires

Alimentez votre entreprise

Certains des outils et services pour aider votre entreprise grow.
  • L'outil de synthèse vocale qui utilise l'IA pour générerate des voix humaines réalistes.

    Essayez Murf AI
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.

    Essayez Brightdata
  • Monday.com est un système d'exploitation de travail tout-en-un pour vous aider à gérer les projets, les tâches, le travail, les ventes, le CRM, les opérations, workflowset plus encore.

    Essayez Monday
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.

    Essayez Intruder