Python Liste sort() avec exemples

⚡ Résumé intelligent

Python La fonction `list sort()` organise les éléments d'une liste sur place, par ordre croissant par défaut ou décroissant via le paramètre `reverse`, tandis qu'une fonction `key` optionnelle permet de trier selon des critères personnalisés tels que la longueur, les champs de tuple ou des fonctions définies par l'utilisateur.

  • (I.e. syntaxe: La méthode sort() accepte les paramètres optionnels key et reverse et modifie la liste originale sans en créer de copie.
  • ☑️ Contrôle des commandes : Définir le paramètre reverse sur True trie les valeurs de la plus élevée à la plus basse au lieu de l'ordre croissant par défaut.
  • ✅ Paramètre clé : Une fonction clé telle que len trie les éléments selon une valeur dérivée comme la longueur d'une chaîne de caractères ou un champ de tuple.
  • 🧪 trier vs trié : La méthode sort() modifie la liste sur place et renvoie None, tandis que sorted() renvoie une nouvelle liste et conserve l'originale.
  • ️ Critères personnalisés : Les expressions lambda et les fonctions définies par l'utilisateur permettent à sort() de trier les tuples, les dictionnaires et les tuples nommés selon n'importe quel attribut choisi.
  • 🤖 Flux de travail d'IA : Les pipelines d'apprentissage automatique trient les prédictions par score et sélectionnent les meilleurs résultats avant le classement ou l'évaluation.

Python Tri de liste()

Quelle est la méthode sort() dans Python?

La fonction sort() dans Python Permet de trier une liste par ordre croissant ou décroissant. Cette fonction peut être utilisée pour trier une liste numérique, des tuples et une liste de chaînes de caractères. Elle ne crée pas de nouvelle liste, mais modifie ou trie la liste d'origine.

Syntaxe de la méthode Sort dans Python

La fonction de tri a la syntaxe suivante :

List.sort(key=…, reverse=…)

La fonction de tri possède deux paramètres optionnels, à savoir :

  • Clé : - Ceci est utilisé pour trier une fonction en fonction d'un critère de tri.
  • Reverse: – Elle prend la valeur « vrai » ou « faux ». Si la valeur 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']

Code Explication:

  • 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.

Prenons l'exemple suivant :

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 d'une 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)]

Code Explication:

  • 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. Cette longueur peut être utilisée pour l'indexation dans la fonction de tri. Pour ce faire, nous assignons Len à l'élément. 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']

Code Explication:

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 placé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 sort, 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}]

Code Explication:

  • 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

Après avoir étudié les exemples précédents, il est utile de comparer directement les deux outils de tri. Avant de résumer les différences, examinons la syntaxe de la méthode Sorted.

Python syntaxe:

sorted (list_name, reverse=…., key=..)

Code Explication:

  • 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:

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

Code Explication:

  • 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 principaux points communs 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)]

Code Explication:

  • 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 de meilleures conditions traccapacité et gestion efficace des données.

FAQ

Passez la clé `str.lower` à la méthode `sort()`, par exemple `names.sort(key=str.lower)`. Chaque chaîne est comparée en minuscules ; ainsi, « Apple » et « banana » sont triées par ordre alphabétique, indépendamment de la casse. La casse d'origine de chaque élément est conservée dans la liste triée finale.

Le tri d'une liste contenant uniquement des nombres ou uniquement des chaînes de caractères fonctionne, mais le mélange de types non liés, tels que des entiers et des chaînes de caractères, provoque une erreur TypeError, car Python Impossible de les comparer. Convertissez d'abord les valeurs en un type comparable, ou transmettez une fonction de clé qui renvoie des clés comparables.

Python Historiquement, l'interpréteur utilisait Timsort, un algorithme hybride combinant tri fusion et tri par insertion. Depuis la version 3.11, il utilise Powersort, une variante dérivée de Timsort dotée d'une politique de fusion plus performante. Les deux algorithmes sont stables et leur complexité temporelle est de O(n log n) dans le pire des cas.

Oui. La méthode `sort()` est stable ; les éléments égaux conservent donc leur ordre relatif d'origine. Cela permet de trier selon plusieurs critères par étapes, en commençant par le critère le moins important et en terminant par le plus important.

La méthode sort() s'exécute en O(n log n) dans le pire des cas et en moyenne. Sur des données déjà majoritairement triées, sa complexité tend vers O(n), car l'algorithme sous-jacent détecte et réutilise les séquences triées existantes au lieu de les trier à nouveau.

Il est possible de fournir une clé permettant de convertir chaque élément lors de la comparaison, par exemple `nums.sort(key=int)`. La liste est alors triée par valeur numérique et non par caractère ; ainsi, « 10 » est correctement trié après « 9 ». Les éléments stockés restent sous forme de chaînes de caractères ; seule la comparaison utilise leur valeur entière.

Le tri permet d'organiser les prédictions par score ou probabilité, de sélectionner les k meilleurs résultats dans les systèmes de classement et de recommandation, et d'ordonner les enregistrements lors de la préparation des données. Les pipelines d'apprentissage automatique trient fréquemment les valeurs des caractéristiques ou les sorties du modèle avant l'évaluation ; la méthode intégrée `sort()` est donc une étape de prétraitement courante.

Oui. GitHub Copilot et les assistants IA d'agentic génèrent des appels à `sort()` et `sorted()`, incluant les fonctions clés et les expressions lambda, à partir d'un court commentaire. Ils peuvent restructurer les boucles en instructions de tri uniques, mais il est toujours recommandé de tester l'ordre et de confirmer le résultat dans les cas limites.

Résumez cet article avec :