Trier les données efficacement
Fait partie de la section Logic & Flow du Journey Python de Coddy — leçon 48 sur 78.
Le tri est une opération fondamentale en informatique, et Python propose des outils intégrés puissants pour trier les données efficacement. La fonction principale pour le tri est sorted(), qui peut être utilisée pour trier divers types de données, notamment des nombres, des chaînes de caractères et des objets plus complexes.
Tri de base :
La fonction sorted() prend un itérable (par exemple, une liste, un tuple ou un ensemble) comme argument et renvoie une nouvelle liste contenant les éléments triés. Par défaut, elle trie par ordre croissant.
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers = sorted(numbers)
print(sorted_numbers)
# Sortie : [1, 1, 2, 3, 4, 5, 6, 9]Dans cet exemple, sorted() trie la liste numbers par ordre croissant.
Tri décroissant :
Pour trier par ordre décroissant, vous pouvez utiliser le paramètre reverse et le définir sur True.
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc)
# Sortie : [9, 6, 5, 4, 3, 2, 1, 1]Ici, sorted() trie la liste numbers par ordre décroissant.
Tri des chaînes de caractères :
La fonction sorted() peut également trier des chaînes de caractères en fonction de leur ordre lexicographique (c'est-à-dire l'ordre dans lequel elles apparaîtraient dans un dictionnaire).
words = ["apple", "banana", "cherry"]
sorted_words = sorted(words)
print(sorted_words)
# Sortie : ['apple', 'banana', 'cherry']Dans cet exemple, sorted() trie la liste words par ordre alphabétique.
Tri personnalisé avec une fonction clé :
Pour des besoins de tri plus complexes, vous pouvez utiliser le paramètre key pour spécifier une fonction qui détermine l'ordre de tri. La fonction key est appliquée à chaque élément avant le tri, et les valeurs renvoyées sont utilisées pour la comparaison.
words = ["banana", "kiwi", "fig"]
sorted_words_by_length = sorted(words, key=len)
print(sorted_words_by_length)
# Sortie : ['fig', 'kiwi', 'banana']Dans ce cas, sorted() trie la liste words en fonction de la longueur de chaque mot, en utilisant la fonction len() comme key.
Défi
FacileÉcrivez un programme qui effectue les tâches de tri suivantes en utilisant la fonction sorted() :
- Triez une liste de nombres par ordre croissant.
- Triez la même liste de nombres par ordre décroissant.
- Triez une liste de chaînes de caractères par ordre alphabétique.
- Triez la même liste de chaînes de caractères en fonction de leur longueur.
Aide-mémoire
La fonction sorted() trie les données et renvoie une nouvelle liste avec les éléments triés.
Tri de base (ordre croissant) :
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers = sorted(numbers)
# Output: [1, 1, 2, 3, 4, 5, 6, 9]Tri inversé (ordre décroissant) :
sorted_numbers_desc = sorted(numbers, reverse=True)
# Output: [9, 6, 5, 4, 3, 2, 1, 1]Tri de chaînes de caractères par ordre alphabétique :
words = ["apple", "banana", "cherry"]
sorted_words = sorted(words)
# Output: ['apple', 'banana', 'cherry']Tri personnalisé avec une fonction clé :
sorted_words_by_length = sorted(words, key=len)
# Trie par longueur de chaîneEssayez vous-même
# Entrées de départ
numbers = [5, 3, 8, 1, 2]
words = ["elephant", "cat", "dolphin", "bee"]
# Tâche 1 : Trier les nombres par ordre croissant
# Tâche 2 : Trier les nombres par ordre décroissant
# Tâche 3 : Trier les mots par ordre alphabétique
# Tâche 4 : Trier les mots par longueur
# Remplacez 'pass' par votre code pour chaque tâche
ascending_numbers = None
descending_numbers = None
alphabetical_words = None
length_sorted_words = None
# Afficher les résultats
print("Ascending:", ascending_numbers)
print("Descending:", descending_numbers)
print("Alphabetical:", alphabetical_words)
print("By Length:", length_sorted_words)Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logic & Flow
1Exploration des variables
ConstantesAffectations multiplesÉchange de variablesVariables de substitutionArrondir des nombresCasting de listes4Application de carnet de contacts
Afficher le menuAjouter un contact7Ensembles Partie 2
Opérations mathématiques Partie 1Opérations mathématiques Partie 2Récapitulatif - Chasse au trésorSous-ensembles et sur-ensemblesItérer sur les ensemblesRécapitulatif - Suivi de tournoi10Compréhensions de listes basiques
La syntaxeCréer des listes simplesAjouter des conditionsUtiliser l'agrégation de donnéesRécapitulatif - House Of ListsRécapitulatif - Elements Of Freedom13Système de gestion des stocks
Présentation du projetAjouter un article2Les dictionnaires - Partie 1
Qu'est-ce qu'un dictionnaire ?Créer un dictionnaireAccéder aux valeursModifier des dictionnairesRécapitulatif - Gestionnaire de recettes5Prise de décision avancée
Opérateur ternaireVérifications d'appartenanceVérifications d'identitéErreurs d'indentationRécapitulatif - Filtre de vacances8Gestionnaire de dossiers étudiants
Présentation du projetAjouter un étudiant11Fonctions avancées
Retourner plusieurs valeursFonctions Lambda - Partie 1Fonctions Lambda - Partie 2Défi récapitulatif - Tri LambdaFonctions récursives - Partie 1Fonctions récursives - Partie 2Récapitulatif - Somme d'une liste imbriquée14Fonctions d'ordre supérieur
La fonction MapLa fonction FilterRécapitulatif - Validateur d'e-mailsRécapitulatif - Processeur de nombres3Dictionnaires - Partie 2
Méthodes de dictionnaireDictionnaires imbriquésVérification des clésParcourir les dictionnairesRécapitulatif - Compteur de fréquence6Les Ensembles - Partie 1
Qu'est-ce qu'un ensemble ?Opérations de baseMéthodes des ensemblesRécapitulatif - Supprimer les doublons9Agrégation de données avancée
Utilisation de SumTrouver le minimum et le maximumTrier les données efficacementRécapitulatif - Trieur de dictionnaires