Python Liste sort() avec exemples

Quelle est la mรฉthode sort() dans Python?

Fonction de tri dans Python permet de trier une liste par ordre croissant ou dรฉcroissant. Il peut รชtre utilisรฉ pour trier une liste numรฉrique, des tuples et une liste de chaรฎnes. Il ne crรฉe pas de liste sรฉparรฉe mais modifie ou trie l'original.

Syntaxe de la mรฉthode Sort dans Python

La fonction de tri a la syntaxe suivante, rรฉpertoriรฉe ci-dessous : โ€“

List.sort(key=โ€ฆ, reverse=โ€ฆ)

La fonction de tri a deux paramรจtres facultatifs, ร  savoir ceux rรฉpertoriรฉs ci-dessous : โ€“

  • Clรฉ : - Ceci est utilisรฉ pour trier une fonction en fonction d'un critรจre de tri.
  • Revsinon : โ€“ il prend la valeur comme vraie ou fausse. Si c'est vrai, cette fonction personnalisรฉe trie la liste par ordre dรฉcroissant.

Tri d'une liste par ordre croissant ร  l'aide de la mรฉthode Sort dans Python

In Python, la fonction de tri, par dรฉfaut, trie n'importe quelle liste par ordre croissant. Une liste par ordre croissant a la valeur la plus basse sur le cรดtรฉ gauche et la valeur la plus รฉlevรฉe sur le cรดtรฉ droit.

Exemple :

Python code:

base_list=["Google","Reliance","Guru99","Content","Syntax"]
base_list.sort()
print("the base list after sorting is",base_list)

Sortie :

the base list after sorting is ['Content', 'Google', 'Guru99', 'Reliance', 'Syntax']

Explication du code :

  • La liste ci-dessus est une liste de chaรฎnes dรฉfinies alรฉatoirement.
  • La fonction de tri de Python aide ร  trier la liste alรฉatoire par ordre croissant, avec la longueur la plus basse du mot sur le cรดtรฉ gauche et la longueur la plus รฉlevรฉe du mot sur le cรดtรฉ droit.

Trier une liste par ordre dรฉcroissant

La fonction de tri permet รฉgalement de trier une liste par ordre dรฉcroissant. Il peut รชtre dรฉfini comme l'ordre oรน la liste commence par la valeur la plus รฉlevรฉe et se termine par la valeur la plus basse.

Le paramรจtre reverse de la fonction de tri est attribuรฉ comme true pour obtenir une liste triรฉe par ordre dรฉcroissant.

Regardons l'exemple ci-dessous : โ€“

Python code:

base_list=[100,600,400,8000,50]
base_list.sort()
print("the base list after sorting is",base_list)
# Reverse Order
base_list.sort(reverse=True)
print("the base list after REVERSE sorting is",base_list)

Sortie :

the base list after sorting is [50, 100, 400, 600, 8000]
the base list after REVERSE sorting is [8000, 600, 400, 100, 50]

Remarque : assurez-vous que l'affectation du mot ยซ True ยป au paramรจtre reverse commence par un ยซ T ยป majuscule pour รฉviter toute erreur d'exรฉcution.

Tri d'une liste de tuples ร  l'aide de la mรฉthode Sort dans Python

Python Tuples sont des collections dโ€™รฉlรฉments immuables qui suivent une sรฉquence ordonnรฉe. PythonLa fonction de tri de peut รชtre utilisรฉe pour trier une liste de tuples ร  l'aide d'une fonction personnalisรฉe et d'une expression lambda.

Une fonction personnalisรฉe peut รชtre crรฉรฉe sans nom et reprรฉsentรฉe par une expression lambda. Voici la syntaxe de l'expression Lambda : โ€“

syntaxe:

Lambda arguments: expression

La syntaxe ci-dessus est รฉquivalente au code python ci-dessous :

def name (arguments):
return expression

Voici un exemple de tuple et de fonction personnalisรฉe pour illustrer comment une fonction de tri avec des paramรจtres clรฉs permet de trier les รฉlรฉments d'un tuple : -

Python code:

base_list = [('Alto', 2020, 500),('MSFT', 2022, 300),('Guru99', 2019, 1070)]
def get_key(base_list):
    return base_list[2]
base_list.sort(key=get_key,reverse=True)
print("The change in base list is as follows",base_list)

Sortie :

The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]

Explication du code :

  • Le paramรจtre reverse est dรฉfini comme true pour trier le tuple par ordre dรฉcroissant.
  • La fonction personnalisรฉe prend le deuxiรจme รฉlรฉment du tuple.
  • Ceci est utilisรฉ comme clรฉ de la fonction de tri.

Regardons l'exemple ci-dessous qui utilise l'expression lambda :

Python code:

base_list = [('Alto', 2020, 500),
('MSFT', 2022, 300),
('Guru99', 2019, 1070)]
base_list.sort(key=lambda base_list:base_list[2],reverse=True)
print("The change in base list is as follows",base_list)

Sortie :

The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]

Explication:

  • L'expression lambda vous aide ร  trier les รฉlรฉments du tuple de haut en bas avec la clรฉ comme deuxiรจme รฉlรฉment du tuple.
  • Le programme vรฉrifiera la valeur la plus รฉlevรฉe du deuxiรจme รฉlรฉment du tuple.

Tri des รฉlรฉments de la liste en utilisant Len comme paramรจtre clรฉ

Len est une fonction intรฉgrรฉe qui dรฉtermine la longueur de l'รฉlรฉment. La longueur dรฉterminรฉe peut รชtre utilisรฉe pour l'indexation dans la fonction de tri. Pour ce faire, nous affectons Len au Python paramรจtre clรฉ de la fonction de tri.

Python le code illustre comment utiliser la fonction Len avec la fonction de tri.

Python Code:

base_list=["Alto", "Guru99", "Python", "Google", "Java"]
base_list.sort(key=len)
print("The sorted list based on length:",base_list)

Sortie :

The sorted list based on length: ['Alto', 'Java', 'Guru99', 'Python', 'Google']

Explication du code :

Trier les รฉlรฉments de la liste ร  l'aide de Len

  • La longueur de l'รฉlรฉment devient un index pour le paramรจtre clรฉ permettant d'organiser la liste par ordre croissant.
  • La fonction Len estime la longueur de chaque รฉlรฉment prรฉsent dans la liste de base.
  • Il conserve lโ€™รฉlรฉment le plus court du cรดtรฉ gauche et le plus grand รฉlรฉment du cรดtรฉ droit.
  • Ici, les mots alto et java ont une longueur de 4, qui sont classรฉs en premier dans la liste, suivis de Guru99, qui a une longueur de 6.

Cet exemple illustre le concept du paramรจtre reverse dans la fonction de tri comme indiquรฉ ci-dessous : โ€“

Python Code:

base_list=["Alto", "Guru99", "Python", "Google", "Java"]
base_list.sort(key=len,reverse=True)
print("The sorted list based on length:",base_list)

Sortie :

The sorted list based on length: ['Guru99', 'Python', 'Google', 'Alto', 'Java']

Tri des รฉlรฉments de la liste en utilisant une fonction dรฉfinie par l'utilisateur comme paramรจtre clรฉ

Vous pouvez รฉgalement utiliser une fonction dรฉfinie par l'utilisateur comme paramรจtre clรฉ pour trier une liste. Voici un exemple: -

Python Code:

base_list = [{'Example':'Python','year':1991},{'Example':'Alto','year':2014},{'Example':'Guru99', 'year':1995},
{'Example':'Google','year':1985},{'Example':'Apple','year':2007},{'Example':'Emails','year':2010},]
def get_year(element):
    return element['year']
base_list.sort(key=get_year)
print("The base list after sorting using explicit criteria",base_list)

Sortie :

The base list after sorting using explicit criteria [{'Example': 'Google', 'year': 1985}, {'Example': 'Python', 'year': 1991}, {'Example': 'Guru99', 'year': 1995}, {'Example': 'Apple', 'year': 2007}, {'Example': 'Emails', 'year': 2010}, {'Example': 'Alto', 'year': 2014}]

Explication du code :

  • Une fonction dรฉfinie par l'utilisateur est crรฉรฉe pour renvoyer l'annรฉe
  • Le paramรจtre clรฉ prend comme critรจre une fonction dรฉfinie par l'utilisateur.
  • La fonction de tri organisera la liste par ordre croissant en fonction de la valeur de l'รฉlรฉment ยซ annรฉe ยป.

Diffรฉrence entre la mรฉthode de tri et la mรฉthode triรฉe dans Python

Avant de rรฉsumer les diffรฉrences, comprenons la syntaxe de la mรฉthode Sorted.

Python syntaxe:

sorted (list_name, reverse=โ€ฆ., key=..)

Explication du code :

  • La fonction sorted trie la liste par ordre croissant ou dรฉcroissant.
  • La fonction accepte trois paramรจtres, parmi lesquels deux paramรจtres sont d'un type facultatif et un paramรจtre est du type requis.
  • Le paramรจtre list_name est requis lors de lโ€™utilisation de la mรฉthode Sorted.
  • La mรฉthode Sorted peut prendre nโ€™importe quel type de liste itรฉrable en entrรฉe.
  • Les paramรจtres clรฉs et les paramรจtres inverses sont des paramรจtres facultatifs sous la mรฉthode triรฉe dans Python.

Voici un exemple d'utilisation de la fonction sort et sorted dans Python comme indiquรฉ ci-dessous : โ€“

Python code:

#Use of the Sorted method
Base_list=[11,10,9,8,7,6]
print("the original list is",Base_list)
New_list=sorted(Base_list)
print("the New list using sorted method is",New_list)
#Use of the Sort method
Base_list=[11,10,9,8,7,6]
print("the original list is",Base_list)
New_list=Base_list.sort()
print("the New list using sort method is",New_list)

Sortie :

the original list is [11, 10, 9, 8, 7, 6]
the new list using the sorted method is [6, 7, 8, 9, 10, 11]
the original list is [11, 10, 9, 8, 7, 6]
the new list using the sort method is None

Explication du code :

  • La liste d'origine est passรฉe comme paramรจtre obligatoire pour la fonction triรฉe.
  • La mรฉthode Sorted renvoie une nouvelle liste en plus de la liste d'origine.
  • Puisquโ€™aucun paramรจtre supplรฉmentaire nโ€™est transmis ร  la mรฉthode sorted, la nouvelle liste est triรฉe par dรฉfaut par ordre croissant.
  • La fonction de tri ne crรฉe aucune nouvelle liste.

Voici les points sur les principales similitudes et diffรฉrences : โ€“

Fonction triรฉe Fonction de tri
Fonction triรฉe dans Python est une fonction intรฉgrรฉe qui prend list_name comme paramรจtre obligatoire. La fonction de tri ne prend pas la liste d'origine comme paramรจtre.
La mรฉthode triรฉe renvoie une nouvelle liste La fonction de tri ne renvoie pas de nouvelle liste
La fonction triรฉe doit รชtre utilisรฉe pour les listes itรฉrables La fonction de tri doit รชtre utilisรฉe pour les listes non itรฉrables.
Il ne modifie pas la liste originale et nous permet de conserver les donnรฉes originales. La fonction de tri modifie la fonction d'origine et occupe donc moins d'espace mรฉmoire

Quand utiliser la mรฉthode sorted ou la mรฉthode sort ?

Prenons un exemple qui nรฉcessite de trier les donnรฉes raciales. Le programme utilise le numรฉro de dossard et le temps mis en secondes pour terminer la course.

Python code:

from collections import namedtuple
Base = namedtuple('Runner', 'bibnumber duration')
blist = []
blist.append(Base('8567', 1500))
blist.append(Base('5234', 1420))
blist.append(Base('2344', 1600))
blist.append(Base('2342', 1490))
blist.append(Base('23444', 1620))
blist.append(Base('6674', 1906))
print("original list",blist)
blist.sort(key=lambda x: getattr(x, 'duration'))
top_five_result = blist[:5]
print("Results using sort function",top_five_result)
r_blist=sorted(blist,key=lambda x: getattr(x, 'duration'))
top_five_result = r_blist[:5]
print("Results using sorted function",top_five_result)

Sortie :

original list [Runner(bibnumber='8567', duration=1500), Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='23444', duration=1620), Runner(bibnumber='6674', duration=1906)]

Results using sort function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)]

Results using sorted function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)]

Explication du code :

  • La liste de base est triรฉe ร  l'aide de la fonction de tri et de la fonction triรฉe.
  • La liste de base est perdue lorsque la fonction de tri est appliquรฉe.
  • La fonction de tri ne doit pas รชtre appliquรฉe ร  l'ensemble de donnรฉes d'origine. Il doit รชtre utilisรฉ lorsqu'il existe une version copiรฉe de l'ensemble de donnรฉes d'origine.
  • La fonction Sorted conserve la liste d'origine. Cela ne lโ€™annule pas.
  • Cela offre une meilleure traรงabilitรฉ et une gestion efficace des donnรฉes.

Conclusion

  • La fonction de tri permet de trier une liste numรฉrique et de chaรฎnes en python.
  • Cela peut รฉgalement aider ร  trier les tuples.
  • Reverse et key sont des paramรจtres facultatifs de la fonction.
  • S'il est nรฉcessaire d'avoir une liste sรฉparรฉe et d'avoir simultanรฉment la liste d'origine, alors la fonction triรฉe doit รชtre utilisรฉe, sinon la fonction de tri doit รชtre utilisรฉe pour obtenir une utilisation optimisรฉe de la mรฉmoire.

Rรฉsumez cet article avec :