Introduction
Python est un langage de programmation très populaire, notamment grâce à sa facilité d’utilisation et à sa grande communauté. L’une des fonctionnalités les plus utilisées en Python est le tri de listes. Le tri est une opération courante en programmation. Il permet de classer les éléments d’une liste dans un ordre spécifique. Dans cet article, nous allons explorer les différentes méthodes pour trier une liste en Python.
Tri avec la méthode sorted()
La méthode sorted() est une méthode intégrée de Python qui permet de trier une liste. Cette méthode crée une nouvelle liste triée à partir d’une liste existante. Elle ne modifie pas la liste d’origine. Voici un exemple simple :
liste = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
nouvelle_liste = sorted(liste)
print(nouvelle_liste)
Le résultat est :
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
La méthode sorted() peut également trier une liste de chaînes de caractères. Voici un exemple :
liste = ["banane", "pomme", "orange", "kiwi"]
nouvelle_liste = sorted(liste)
print(nouvelle_liste)
Le résultat est :
['banane', 'kiwi', 'orange', 'pomme']
La méthode sorted() peut trier une liste dans l’ordre inverse en utilisant le paramètre reverse. Voici un exemple :
liste = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
nouvelle_liste = sorted(liste, reverse=True)
print(nouvelle_liste)
Le résultat est :
[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
La méthode sorted() peut également trier une liste d’objets. Dans ce cas, il est nécessaire de spécifier une clé de tri. La clé de tri est une fonction qui prend un élément de la liste et retourne une valeur qui sera utilisée pour trier la liste. Voici un exemple :
class Personne:
def __init__(self, nom, age):
self.nom = nom
self.age = age
personnes = [
Personne("Alice", 25),
Personne("Bob", 20),
Personne("Charlie", 30)
]
def tri_age(personne):
return personne.age
personnes_triees = sorted(personnes, key=tri_age)
for personne in personnes_triees:
print(personne.nom)
Le résultat est :
Bob
Alice
Charlie
Dans cet exemple, la méthode sorted() trie la liste de Personne en utilisant la clé de tri tri_age qui trie la liste par âge croissant.
Tri avec la méthode sort()
La méthode sort() est similaire à la méthode sorted(), mais elle modifie la liste d’origine plutôt que de créer une nouvelle liste triée. Voici un exemple :
liste = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
liste.sort()
print(liste)
Le résultat est :
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
La méthode sort() peut également trier une liste dans l’ordre inverse en utilisant le paramètre reverse. Voici un exemple :
liste = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
liste.sort(reverse=True)
print(liste)
Le résultat est :
[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
La méthode sort() peut également trier une liste d’objets en utilisant la même méthode que la méthode sorted(). Voici un exemple :
class Personne:
def __init__(self, nom, age):
self.nom = nom
self.age = age
personnes = [
Personne("Alice", 25),
Personne("Bob", 20),
Personne("Charlie", 30)
]
def tri_age(personne):
return personne.age
personnes.sort(key=tri_age)
for personne in personnes:
print(personne.nom)
Le résultat est :
Bob
Alice
Charlie
Tri avec la méthode sort() et lambda
Il est également possible de trier une liste d’objets en utilisant une fonction lambda. La fonction lambda est une fonction anonyme qui peut être utilisée comme clé de tri. Voici un exemple :
class Personne:
def __init__(self, nom, age):
self.nom = nom
self.age = age
personnes = [
Personne("Alice", 25),
Personne("Bob", 20),
Personne("Charlie", 30)
]
personnes.sort(key=lambda personne: personne.age)
for personne in personnes:
print(personne.nom)
Le résultat est :
Bob
Alice
Charlie
Dans cet exemple, la fonction lambda prend une personne et retourne son âge. La méthode sort() utilise cette fonction lambda comme clé de tri.
Tri avec la méthode sort() et attrgetter
Il est également possible de trier une liste d’objets en utilisant la fonction attrgetter() du module operator. La fonction attrgetter() permet de récupérer la valeur d’un attribut d’un objet. Voici un exemple :
from operator import attrgetter
class Personne:
def __init__(self, nom, age):
self.nom = nom
self.age = age
personnes = [
Personne("Alice", 25),
Personne("Bob", 20),
Personne("Charlie", 30)
]
personnes.sort(key=attrgetter("age"))
for personne in personnes:
print(personne.nom)
Le résultat est :
Bob
Alice
Charlie
Dans cet exemple, la fonction attrgetter() prend l’attribut age de chaque objet Personne et le retourne. La méthode sort() utilise cette fonction attrgetter() comme clé de tri.
Conclusion
Dans cet article, nous avons exploré les différentes méthodes pour trier une liste en Python. Nous avons vu que la méthode sorted() crée une nouvelle liste triée à partir d’une liste existante, tandis que la méthode sort() modifie la liste d’origine. Nous avons également vu que ces méthodes peuvent trier des listes de chaînes de caractères et d’objets en utilisant des clés de tri. Enfin, nous avons vu qu’il est possible d’utiliser des fonctions lambda et la fonction attrgetter() du module operator pour trier des listes d’objets. En comprenant ces différentes méthodes, vous serez en mesure de trier efficacement des listes en Python.
Note : Cet article n'est pas mis à jour régulièrement et peut contenir des informations obsolètes ainsi que des erreurs.