Comment vérifier si une liste est triée (quel que soit l'ordre) en Python

PythonPythonBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à vérifier si une liste est triée en Python, que ce soit dans l'ordre croissant ou décroissant. Vous explorerez les bases des listes triées et leur utilisation dans diverses tâches de programmation.

Le laboratoire vous guide dans la création et la manipulation de listes à l'aide des fonctions intégrées de Python. Vous apprendrez à utiliser la fonction sorted() pour créer de nouvelles listes triées à partir de listes existantes, à la fois dans l'ordre croissant et décroissant. Le laboratoire montre également comment trier des listes de chaînes de caractères.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/ControlFlowGroup -.-> python/for_loops("For Loops") python/DataStructuresGroup -.-> python/lists("Lists") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/conditional_statements -.-> lab-559535{{"Comment vérifier si une liste est triée (quel que soit l'ordre) en Python"}} python/for_loops -.-> lab-559535{{"Comment vérifier si une liste est triée (quel que soit l'ordre) en Python"}} python/lists -.-> lab-559535{{"Comment vérifier si une liste est triée (quel que soit l'ordre) en Python"}} python/build_in_functions -.-> lab-559535{{"Comment vérifier si une liste est triée (quel que soit l'ordre) en Python"}} python/data_collections -.-> lab-559535{{"Comment vérifier si une liste est triée (quel que soit l'ordre) en Python"}} end

Explorer les listes triées

Dans cette étape, vous allez apprendre à propos des listes triées en Python. Les listes triées sont fondamentales en programmation pour des tâches telles que la recherche, l'analyse de données et l'optimisation d'algorithmes. Python fournit des fonctions et des méthodes intégrées pour créer et manipuler facilement des listes triées.

Tout d'abord, créons une simple liste de nombres :

## Create a list of numbers
numbers = [5, 1, 4, 2, 8]
print(numbers)

Enregistrez le code ci-dessus dans un fichier nommé sort_list.py dans votre répertoire ~/project. Vous pouvez utiliser l'éditeur VS Code pour créer ce fichier.

Maintenant, exécutez le script en utilisant la commande suivante dans le terminal :

python ~/project/sort_list.py

Vous devriez voir la liste originale affichée :

[5, 1, 4, 2, 8]

Pour trier cette liste, vous pouvez utiliser la fonction sorted(). La fonction sorted() renvoie une nouvelle liste triée à partir des éléments d'un objet itérable.

## Create a list of numbers
numbers = [5, 1, 4, 2, 8]

## Sort the list using the sorted() function
sorted_numbers = sorted(numbers)

## Print the sorted list
print(sorted_numbers)

Modifiez votre fichier sort_list.py pour inclure le code ci-dessus. Ensuite, exécutez le script à nouveau :

python ~/project/sort_list.py

Maintenant, vous devriez voir la liste triée affichée :

[1, 2, 4, 5, 8]

Notez que la liste originale numbers reste inchangée. La fonction sorted() crée une nouvelle liste triée.

Si vous souhaitez trier la liste dans l'ordre décroissant, vous pouvez utiliser le paramètre reverse :

## Create a list of numbers
numbers = [5, 1, 4, 2, 8]

## Sort the list in descending order
sorted_numbers = sorted(numbers, reverse=True)

## Print the sorted list
print(sorted_numbers)

Modifiez votre fichier sort_list.py pour inclure le code ci-dessus. Ensuite, exécutez le script à nouveau :

python ~/project/sort_list.py

Vous devriez voir la liste triée dans l'ordre décroissant :

[8, 5, 4, 2, 1]

Vous pouvez également trier des listes de chaînes de caractères :

## Create a list of strings
names = ["Alice", "Bob", "Charlie", "David"]

## Sort the list of strings
sorted_names = sorted(names)

## Print the sorted list
print(sorted_names)

Modifiez votre fichier sort_list.py pour inclure le code ci-dessus. Ensuite, exécutez le script à nouveau :

python ~/project/sort_list.py

Vous devriez voir la liste de noms triée :

['Alice', 'Bob', 'Charlie', 'David']

Les chaînes de caractères sont triées par ordre alphabétique.

Vérifier l'ordre croissant ou décroissant

Dans cette étape, vous apprendrez à vérifier si une liste est triée dans l'ordre croissant ou décroissant. C'est une tâche courante dans de nombreux scénarios de programmation, tels que la validation de données et la conception d'algorithmes.

Pour déterminer si une liste est triée, vous pouvez parcourir la liste et comparer les éléments adjacents. Si chaque élément est inférieur ou égal à l'élément suivant, la liste est triée dans l'ordre croissant. Si chaque élément est supérieur ou égal à l'élément suivant, la liste est triée dans l'ordre décroissant.

Commençons par créer un script Python nommé check_order.py dans votre répertoire ~/project en utilisant l'éditeur VS Code.

Voici le code pour vérifier si une liste est triée dans l'ordre croissant :

def is_ascending(lst):
    for i in range(len(lst) - 1):
        if lst[i] > lst[i + 1]:
            return False
    return True

numbers = [1, 2, 3, 4, 5]
print(is_ascending(numbers))

numbers = [1, 3, 2, 4, 5]
print(is_ascending(numbers))

Enregistrez le code ci-dessus dans check_order.py. Maintenant, exécutez le script en utilisant la commande suivante :

python ~/project/check_order.py

Vous devriez voir la sortie suivante :

True
False

La première liste [1, 2, 3, 4, 5] est triée dans l'ordre croissant, donc la fonction retourne True. La deuxième liste [1, 3, 2, 4, 5] n'est pas triée dans l'ordre croissant, donc la fonction retourne False.

Maintenant, ajoutons le code pour vérifier si une liste est triée dans l'ordre décroissant :

def is_descending(lst):
    for i in range(len(lst) - 1):
        if lst[i] < lst[i + 1]:
            return False
    return True

numbers = [5, 4, 3, 2, 1]
print(is_descending(numbers))

numbers = [5, 2, 3, 2, 1]
print(is_descending(numbers))

Ajoutez le code ci-dessus à votre fichier check_order.py. Le fichier check_order.py complet devrait ressembler à ceci :

def is_ascending(lst):
    for i in range(len(lst) - 1):
        if lst[i] > lst[i + 1]:
            return False
    return True

def is_descending(lst):
    for i in range(len(lst) - 1):
        if lst[i] < lst[i + 1]:
            return False
    return True

numbers = [1, 2, 3, 4, 5]
print(is_ascending(numbers))

numbers = [1, 3, 2, 4, 5]
print(is_ascending(numbers))

numbers = [5, 4, 3, 2, 1]
print(is_descending(numbers))

numbers = [5, 2, 3, 2, 1]
print(is_descending(numbers))

Exécutez le script à nouveau :

python ~/project/check_order.py

Vous devriez voir la sortie suivante :

True
False
True
False

La liste [5, 4, 3, 2, 1] est triée dans l'ordre décroissant, donc la fonction retourne True. La liste [5, 2, 3, 2, 1] n'est pas triée dans l'ordre décroissant, donc la fonction retourne False.

Cet exercice montre comment vérifier si une liste est triée dans l'ordre croissant ou décroissant en utilisant Python.

Utiliser sorted() pour comparer

Dans cette étape, vous apprendrez à utiliser la fonction sorted() pour comparer deux listes. Comparer des listes est une tâche courante en programmation, notamment lorsque vous devez vérifier si deux ensembles de données sont identiques ou si une liste est un sous - ensemble d'une autre.

La fonction sorted() peut être utilisée pour trier les deux listes avant de les comparer. Cela garantit que l'ordre des éléments n'affecte pas le résultat de la comparaison.

Créons un script Python nommé compare_lists.py dans votre répertoire ~/project en utilisant l'éditeur VS Code.

Voici le code pour comparer deux listes en utilisant la fonction sorted() :

def compare_lists(list1, list2):
    sorted_list1 = sorted(list1)
    sorted_list2 = sorted(list2)
    if sorted_list1 == sorted_list2:
        return True
    else:
        return False

list_a = [3, 1, 2]
list_b = [1, 2, 3]
print(compare_lists(list_a, list_b))

list_c = [3, 1, 2]
list_d = [1, 2, 4]
print(compare_lists(list_c, list_d))

Enregistrez le code ci - dessus dans compare_lists.py. Maintenant, exécutez le script en utilisant la commande suivante :

python ~/project/compare_lists.py

Vous devriez voir la sortie suivante :

True
False

Les listes list_a et list_b contiennent les mêmes éléments, donc la fonction retourne True. Les listes list_c et list_d ne contiennent pas les mêmes éléments, donc la fonction retourne False.

Considérons un autre exemple avec des chaînes de caractères :

def compare_lists(list1, list2):
    sorted_list1 = sorted(list1)
    sorted_list2 = sorted(list2)
    if sorted_list1 == sorted_list2:
        return True
    else:
        return False

list_e = ["apple", "banana", "cherry"]
list_f = ["cherry", "apple", "banana"]
print(compare_lists(list_e, list_f))

list_g = ["apple", "banana", "cherry"]
list_h = ["apple", "banana", "date"]
print(compare_lists(list_g, list_h))

Ajoutez le code ci - dessus à votre fichier compare_lists.py. Le fichier compare_lists.py complet devrait ressembler à ceci :

def compare_lists(list1, list2):
    sorted_list1 = sorted(list1)
    sorted_list2 = sorted(list2)
    if sorted_list1 == sorted_list2:
        return True
    else:
        return False

list_a = [3, 1, 2]
list_b = [1, 2, 3]
print(compare_lists(list_a, list_b))

list_c = [3, 1, 2]
list_d = [1, 2, 4]
print(compare_lists(list_c, list_d))

list_e = ["apple", "banana", "cherry"]
list_f = ["cherry", "apple", "banana"]
print(compare_lists(list_e, list_f))

list_g = ["apple", "banana", "cherry"]
list_h = ["apple", "banana", "date"]
print(compare_lists(list_g, list_h))

Exécutez le script à nouveau :

python ~/project/compare_lists.py

Vous devriez voir la sortie suivante :

True
False
True
False

Cet exemple montre comment utiliser la fonction sorted() pour comparer des listes de chaînes de caractères.

Résumé

Dans ce laboratoire (lab), vous avez exploré les listes triées en Python et appris à utiliser la fonction sorted() pour créer de nouvelles listes triées à partir de listes existantes. Vous avez vu comment trier une liste de nombres dans l'ordre croissant et décroissant en utilisant le paramètre reverse.

Le laboratoire a montré que la liste d'origine reste inchangée lorsque vous utilisez sorted(), car elle retourne une nouvelle liste triée. Vous avez également appris que sorted() peut être appliquée à des listes de chaînes de caractères, bien que le contenu fourni ait été tronqué avant de démontrer cela.