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.

Mise en situation :

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.