Cet article vous apprendra comment trier une liste en Python.
En Python, vous pouvez utiliser le sorte() méthode pour trier une liste en place. Ou vous pouvez utiliser le trié () fonction pour obtenir une copie triée de la liste.
Dans ce didacticiel, vous apprendrez :
- Syntaxe de la
sort()
méthode etsorted()
fonction - Exemples de code de listes de tri par ordre croissant et décroissant
- Personnalisez le tri à l'aide de
key
paramètre - Différence entre
sort()
vssorted()
Commençons !👩🏽💻
Syntax of Python sort() Method
La sort()
La méthode agit sur une liste Python. Et il trie la liste sur place et modifie la liste d'origine.
La syntaxe de Python sort()
méthode est :
<list>.sort(reverse = True | False, key = <func>)
Analysons maintenant la syntaxe ci-dessus.
<list>
est n'importe quel objet de liste Python valide.reverse
est un optionnel paramètre qui prend True ou False.- La valeur par défaut de
reverse
isFalse
, et la liste est triée par ordre croissant. DonnerTrue
pour trier la liste par ordre décroissant. key
est aussi un optionnel paramètre défini sur<func>
.<func>
peut être une fonction intégrée ou une fonction définie par l'utilisateur.
Dans la section suivante, vous commencerez à coder des exemples simples.
How to Sort Python List in Ascending Order
Considérez la liste nums
. Pour trier la liste par ordre croissant, vous pouvez appeler le sort()
méthode sur la liste.
▶ Exécutez l'extrait de code suivant.
nums = [25,13,6,17,9]
nums.sort()
print(nums)
# Output: [6, 9, 13, 17, 25]
La liste nums
a été trié par ordre croissant et la liste d'origine a été modifiée. C'est appelé tri sur place.
How to Sort Python List in Descending Order
Pour trier la liste par ordre décroissant, définissez reverse
à True
, comme indiqué ci-dessous.
nums = [25,13,6,17,9]
nums.sort(reverse = True)
print(nums)
# Output: [25, 17, 13, 9, 6]
Vous pouvez voir que la liste est maintenant triée par ordre décroissant.
How to Use key with Python sort() Method
Dans cette section, utilisons le key
paramètre et personnaliser le tri.
Ici, mod5()
est une fonction qui accepte un nombre x
, et renvoie le reste lorsque le nombre x
est divisé par 5.
def mod5(x):
return x % 5
Et nous aimerions utiliser la fonction ci-dessus comme key
.
Maintenant, exécutez la cellule de code suivante.
nums = [25,13,6,17,9]
nums.sort(key = mod5)
print(nums)
# Output: [25, 6, 17, 13, 9]
Prenez une minute pour analyser la sortie.
Remarquez qu'au lieu du tri habituel, vous personnalisez maintenant votre tri en fonction du key
lequel est mod5
.
- Le nombre qui laisse le reste minimum lorsqu'il est divisé par 5 vient en premier maintenant.
- Et le nombre qui laisse le plus grand reste lorsqu'il est divisé par 5 est le dernier élément de la liste triée.
Pour vérifier que c'est le cas, exécutez l'extrait de code suivant.
nums = [25,13,6,17,9]
for num in nums:
print(f"{num} leaves remainder {num%5} when divided by 5")
# Output
25 leaves remainder 0 when divided by 5
13 leaves remainder 3 when divided by 5
6 leaves remainder 1 when divided by 5
17 leaves remainder 2 when divided by 5
9 leaves remainder 4 when divided by 5
5 divise 25 exactement, et le reste est 0. C'est donc le premier élément de la liste triée. 6 laisse un reste 1, c'est donc le deuxième élément, et ainsi de suite. 9 laisse le reste 4 lorsqu'il est divisé par 5, et c'est le dernier élément de la liste triée.
Au lieu de définir une fonction distincte, vous pouvez tout aussi bien utiliser fonctions lambda. En Python, les lambdas sont des fonctions anonymes sur une ligne. arguments lambda : expression renvoie le expression calculé sur le args.
Maintenant, réécrivons le tri ci-dessus en utilisant l'expression lambda, comme indiqué ci-dessous.
nums = [25,13,6,17,9]
nums.sort(key = lambda x:x%5)
print(nums)
# Output: [25, 6, 17, 13, 9]
Jusqu'à présent, vous avez appris à trier une liste de nombres. Voyons ensuite comment vous pouvez trier une liste de chaînes en Python.
How to Sort Python List in Alphabetical Order
Dans cette section, vous apprendrez à trier une liste de chaînes, avec des exemples inspirés de Harry Potter. ✨

Dans notre exemple, students
est une liste d'étudiants à Poudlard. Et nous aimerions les trier dans l'ordre alphabétique de leurs noms.
Lors du tri d'une liste de chaînes, le tri par défaut est par ordre alphabétique.
students = ["Harry","Ron","Hermione","Draco","Cedric"]
Imprimons la liste triée pour vérifier le résultat du tri.
students.sort()
print(students)
# Output
['Cedric','Draco', 'Harry', 'Hermione', 'Ron']
How to Sort Python List in Reverse Alphabetical Order
Pour trier la liste par ordre alphabétique inverse, réglez reverse
= True
, comme indiqué dans l'extrait de code ci-dessous.
students.sort(reverse = True)
print(students)
# Output
['Ron', 'Hermione', 'Harry', 'Draco', 'Cedric']
À partir de la sortie, vous pouvez voir que la liste a bien été triée dans l'ordre inverse.
How to Use key Parameter Customize Sort
Dans cette section, personnalisons le tri à l'aide de l'option key
paramètre.
Considérez la liste suivante, houses
.
houses = [
{1:"Draco","house":"Slytherin"},
{2:"Harry","house":"Gryffindor"},
{3:"Cedric","house":"Hufflepuff"}
]
Ici, houses
est une liste de dictionnaires. Chaque dictionnaire contient deux paires clé-valeur, l'une indiquant les noms des élèves et l'autre la maison à laquelle ils appartiennent.
Maintenant, nous aimerions trier cette liste maisons dans le ordre alphabétique des maisons ils appartiennent à.
Comme vous l'avez peut-être déjà deviné, nous devrions définir le key
paramètre à la maison des étudiants particuliers.
Afin de récupérer la maison de chaque élève, vous pouvez définir une fonction returnHouse()
, comme indiqué ci-dessous.
def returnHouse(student):
return student['house']
Cette fonction renvoie la maison à laquelle appartient l'étudiant particulier.
Maintenant, vous pouvez appeler le sort()
méthode sur la liste des maisons, comme indiqué.
houses.sort(key=returnHouse)
Dans la sortie ci-dessous, notez comment la liste est triée par maison et non par nom d'étudiant. C'est pourquoi nous avons Gryffondor, Poufsouffle et Serpentard, par ordre alphabétique.
print(houses)
# Output
[{2: 'Harry', 'house': 'Gryffindor'},
{3: 'Cedric', 'house': 'Hufflepuff'},
{1: 'Draco', 'house': 'Slytherin'}]
Pour définir le key
paramètre en conséquence, vous pouvez également utiliser une fonction lambda. Pour chaque élément de liste, cette fonction renvoie la maison de cet élément de liste.
▶ Exécutez la cellule de code suivante pour vérifier cela.
houses.sort(key=lambda student:student["house"])
print(houses)
# Output
[{2: 'Harry', 'house': 'Gryffindor'},
{3: 'Cedric', 'house': 'Hufflepuff'},
{1: 'Draco', 'house': 'Slytherin'}]
Dans tous les exemples jusqu'à présent, vous avez utilisé le sort()
méthode sur une liste. Et vous savez maintenant qu'il modifie la liste originale.
Que se passe-t-il si vous souhaitez conserver la liste d'origine telle quelle mais obtenir une copie triée de la liste ?
Eh bien, en Python, vous pouvez utiliser le sorted()
fonction pour le faire.
Syntax of Python sorted() Function
La sorted()
La fonction prend une liste ou n'importe quelle collection comme argument. Et il renvoie une copie triée de la liste et la liste d'origine n'est pas modifiée.
La syntaxe de Python sorted()
la fonction est:
<sorted_copy> = sorted(<list>, reverse = True | False, key = <func>)
Remarquez comment la syntaxe est très similaire à la sort()
méthode que nous avons vue précédemment.
<list>
est n'importe quel objet de liste Python valide et est un conditions paramètre.reverse
etkey
défis optionnel paramètres
Notes: Contrairement à la
sort()
méthode qui agit uniquement sur les listes,sorted()
La fonction peut être utilisée pour trier n'importe quel itérable Python, tel que des listes, des chaînes et des dictionnaires.
How to Sort Python List Using sorted() Function
# 1. Dans cet exemple, nums
est une liste de nombres.
Vous pouvez appeler le sorted()
fonctionner avec nums
comme argument. Et l'attribuer à la liste sorted_nums1
.
nums = [25,13,6,17,9]
sorted_nums1 = sorted(nums)
print(sorted_nums1)
# Output: [6, 9, 13, 17, 25]
Dans la sortie ci-dessus, vous pouvez voir que nums
a été trié par ordre croissant par défaut.
Notez également que la liste originale nums
n'est pas modifié, car sorted()
renvoie une nouvelle liste. Ceci est vérifié ci-dessous.
print(nums)
# Output: [25, 13, 6, 17, 9]
#2. Maintenant, définissez le paramètre facultatif reverse
à True
et obtenir sorted_nums2
.
Comme indiqué dans la cellule de code ci-dessous, sorted_nums2
est une nouvelle liste avec les éléments triés par ordre décroissant.
sorted_nums2 = sorted(nums,reverse = True)
print(sorted_nums2)
# Output: [25, 17, 13, 9, 6]
# 3. Dans cet exemple, travaillons avec une liste de chaînes.
Comme dans les exemples précédents, appeler le sorted()
La fonction renvoie une nouvelle liste. Et les éléments sont triés par ordre alphabétique.
fruits = ['pears','strawberry','apple','pineapple','blueberry']
sorted_fr1 = sorted(fruits)
print(sorted_fr1)
# Output:
['apple', 'blueberry', 'pears', 'pineapple', 'strawberry']
# 4. Maintenant, personnalisons le tri à l'aide de l'option key
paramètre. Met le key
à len
. Cela triera la liste en fonction de la longueur des chaînes.
Remarque : En Python, la fonction intégrée
len()
La fonction accepte n'importe quel itérable, tel que des listes, des chaînes, des tuples, etc. Et il renvoie la longueur de l'itérable.
La chaîne avec la longueur la plus courte apparaît en premier dans la liste triée et la chaîne la plus longue apparaît à la fin de la liste triée.
fruits = ['pear','strawberry','apple','pineapple','blueberry']
sorted_fr2 = sorted(fruits,key=len)
print(sorted_fr2)
# Output:
['pear', 'apple', 'pineapple', 'blueberry', 'strawberry']
Dans la sortie ci-dessus, Poire est la chaîne la plus courte, et fraise est la chaîne la plus longue.
Python sort() Method vs. sorted() Function
Jusqu'à présent, vous avez appris à utiliser le sort()
ainsi que la méthode sorted()
une fonction. Dans cette section, énumérons les différences entre ces deux méthodes.
Méthode Python .sort() | Python trié () Fonction |
Trie la liste sur place—modifie la liste d'origine | Renvoie une nouvelle liste triée |
Fonctionne uniquement avec les listes Python | Fonctionne avec les itérables Python tels que les listes, les chaînes et d'autres collections |
A le type de retour de None | Renvoie une copie triée de l'itérable |
En résumé 👩🏫
J'espère que vous avez trouvé ce tutoriel sur les listes Python utile.
Résumons rapidement ce que nous avons couvert.
- Utilisez list.sort(inverse = Vrai | Faux, clé = ) avec l'option inverser et key paramètres pour trier une liste en place.
- Utilisez trié(liste, inverse = Vrai | Faux, clé = ) pour obtenir une copie triée de la liste.
Maintenant que vous avez appris à trier les listes Python, découvrez liste de compréhension en Python. Ou vous pourriez aussi bien apprendre comment gérer les fichiers or travailler avec des fichiers JSON en Python.
Vous pouvez essayer les exemples donnés ci-dessus dans le Compilateur Python en ligne Geekflare.
-
Bala Priya est un développeur et rédacteur technique indien 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, etc. lire la suite