Comment trier des listes et des dictionnaires en Python

Le tri est une opération fondamentale en programmation, qui permet d'organiser les données dans l'ordre souhaité. Python fournit des outils robustes pour trier les listes et les dictionnaires, ce qui facilite la manipulation efficace des données. Dans cet article, nous allons découvrir comment trier les listes et les dictionnaires en Python, notamment à l'aide de diverses méthodes et exemples.

Tri des listes

Les listes sont l'une des structures de données les plus couramment utilisées en Python. Vous pouvez trier les listes à l'aide de la méthode intégrée sort() ou de la fonction sorted(). Voici comment fonctionne chaque méthode:

Utilisation de sort()

La méthode sort() trie une liste sur place, ce qui signifie qu'elle modifie la liste d'origine et ne renvoie pas de nouvelle liste. Par défaut, elle trie par ordre croissant.

# Example: Sorting a list in ascending order
numbers = [4, 2, 9, 1, 5]
numbers.sort()
print(numbers)  # Output: [1, 2, 4, 5, 9]

# Example: Sorting a list in descending order
numbers = [4, 2, 9, 1, 5]
numbers.sort(reverse=True)
print(numbers)  # Output: [9, 5, 4, 2, 1]

Dans les exemples ci-dessus, la méthode sort() trie la liste numbers d'abord par ordre croissant puis par ordre décroissant en utilisant le paramètre reverse=True.

Utilisation de sorted()

La fonction sorted() renvoie une nouvelle liste triée et ne modifie pas la liste d'origine. Elle permet également de spécifier l'ordre de tri avec le paramètre reverse.

# Example: Using sorted() to get a new sorted list
numbers = [4, 2, 9, 1, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # Output: [1, 2, 4, 5, 9]
print(numbers)  # Output: [4, 2, 9, 1, 5] (original list is unchanged)

# Example: Using sorted() to get a new sorted list in descending order
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc)  # Output: [9, 5, 4, 2, 1]

Ici, sorted() renvoie une nouvelle liste sorted_numbers sans modifier la liste numbers d'origine. Vous pouvez également trier par ordre décroissant avec le paramètre reverse=True.

Trier les dictionnaires

Le tri des dictionnaires consiste à trier le dictionnaire par clés ou valeurs. Contrairement aux listes, les dictionnaires sont par nature non ordonnés jusqu'à Python 3.7, où ils ont commencé à préserver l'ordre d'insertion. Voici comment trier les dictionnaires:

Tri par clés

Pour trier un dictionnaire par ses clés, utilisez la fonction sorted() avec des compréhensions de dictionnaire ou des boucles.

# Example: Sorting a dictionary by keys
data = {'banana': 3, 'apple': 4, 'orange': 2}
sorted_by_keys = {key: data[key] for key in sorted(data)}
print(sorted_by_keys)  # Output: {'apple': 4, 'banana': 3, 'orange': 2}

Dans cet exemple, le dictionnaire data est trié par ses clés, ce qui donne un nouveau dictionnaire sorted_by_keys où les clés sont dans l'ordre croissant.

Tri par valeurs

Pour trier un dictionnaire par ses valeurs, vous pouvez utiliser la fonction sorted() sur les éléments du dictionnaire, puis créer un nouveau dictionnaire.

# Example: Sorting a dictionary by values
data = {'banana': 3, 'apple': 4, 'orange': 2}
sorted_by_values = dict(sorted(data.items(), key=lambda item: item[1]))
print(sorted_by_values)  # Output: {'orange': 2, 'banana': 3, 'apple': 4}

Ici, data.items() renvoie une liste de tuples, et sorted() est utilisé pour trier ces tuples par le deuxième élément (valeur) à l'aide d'une fonction lambda. Le résultat est un nouveau dictionnaire sorted_by_values avec des valeurs dans l'ordre croissant.

Conclusion

Le tri des listes et des dictionnaires en Python est simple et efficace, grâce à la méthode sort() et à la fonction sorted() pour les listes, ainsi qu'à diverses techniques pour les dictionnaires. La compréhension de ces méthodes vous aidera à gérer et à analyser les données plus efficacement. Expérimentez ces techniques de tri pour voir comment elles peuvent être appliquées à vos propres projets !