Comment vérifier si un tuple est trié par ordre décroissant 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 labo (laboratoire), vous apprendrez à vérifier si un tuple est trié par ordre décroissant en Python. Le labo explore différentes méthodes pour y parvenir, en mettant l'accent sur l'utilisation des fonctions intégrées de Python.

Le labo vous guide dans la création et la manipulation de tuples, en montrant comment utiliser la fonction sorted() avec le paramètre reverse=True pour trier un tuple par ordre décroissant. Il introduit également le concept d'inversion d'un tuple et de vérification si le tuple inversé est trié par ordre croissant.


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/tuples("Tuples") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/conditional_statements -.-> lab-559591{{"Comment vérifier si un tuple est trié par ordre décroissant en Python"}} python/for_loops -.-> lab-559591{{"Comment vérifier si un tuple est trié par ordre décroissant en Python"}} python/tuples -.-> lab-559591{{"Comment vérifier si un tuple est trié par ordre décroissant en Python"}} python/build_in_functions -.-> lab-559591{{"Comment vérifier si un tuple est trié par ordre décroissant en Python"}} python/data_collections -.-> lab-559591{{"Comment vérifier si un tuple est trié par ordre décroissant en Python"}} end

Explorer l'ordre décroissant dans les tuples

Dans cette étape, vous apprendrez à manipuler les tuples et à explorer le concept d'ordre décroissant. Les tuples sont similaires aux listes, mais ils sont immuables, ce qui signifie que leurs éléments ne peuvent pas être modifiés après leur création. Nous allons nous concentrer sur la création de tuples, puis explorer comment les trier par ordre décroissant.

Tout d'abord, créons un simple tuple :

my_tuple = (5, 2, 8, 1, 9)
print(my_tuple)

Créez un fichier nommé tuple_sort.py dans votre répertoire ~/project en utilisant l'éditeur VS Code. Copiez et collez le code ci-dessus dans le fichier.

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

python tuple_sort.py

Vous devriez voir la sortie suivante :

(5, 2, 8, 1, 9)

Ensuite, explorons comment trier ce tuple par ordre décroissant. Étant donné que les tuples sont immuables, nous ne pouvons pas les trier directement. Au lieu de cela, nous pouvons utiliser la fonction sorted(), qui renvoie une nouvelle liste triée à partir des éléments de n'importe quel itérable. Pour trier par ordre décroissant, nous pouvons utiliser le paramètre reverse=True.

Ajoutez le code suivant à votre fichier tuple_sort.py :

my_tuple = (5, 2, 8, 1, 9)
print("Original tuple:", my_tuple)

sorted_tuple = tuple(sorted(my_tuple, reverse=True))
print("Sorted tuple (descending):", sorted_tuple)

Voici une explication de ce que fait le code :

  • sorted(my_tuple, reverse=True) : Cela trie les éléments de my_tuple par ordre décroissant et renvoie une liste.
  • tuple(...) : Cela convertit la liste triée en un tuple.

Maintenant, exécutez le script à nouveau :

python tuple_sort.py

Vous devriez voir la sortie suivante :

Original tuple: (5, 2, 8, 1, 9)
Sorted tuple (descending): (9, 8, 5, 2, 1)

Comme vous pouvez le voir, la fonction sorted() avec reverse=True nous permet de trier facilement le tuple par ordre décroissant et de créer un nouveau tuple avec les éléments triés.

Inverser et vérifier l'ordre croissant

Dans cette étape, vous apprendrez à inverser un tuple, puis à vérifier si le tuple inversé est trié par ordre croissant. Cela implique de combiner les concepts d'inversion d'une séquence et de vérification de son ordre.

Commençons avec le tuple que nous avons utilisé à l'étape précédente :

my_tuple = (5, 2, 8, 1, 9)
print("Original tuple:", my_tuple)

Ajoutez ce code à votre fichier tuple_sort.py, ou créez un nouveau fichier si vous préférez.

Pour inverser le tuple, nous pouvons utiliser le slicing (tranchage). Ajoutez les lignes suivantes à votre script :

my_tuple = (5, 2, 8, 1, 9)
print("Original tuple:", my_tuple)

reversed_tuple = my_tuple[::-1]
print("Reversed tuple:", reversed_tuple)

Ici, [::-1] crée une copie inversée du tuple.

Maintenant, exécutez le script :

python tuple_sort.py

Vous devriez voir la sortie suivante :

Original tuple: (5, 2, 8, 1, 9)
Reversed tuple: (9, 1, 8, 2, 5)

Maintenant, vérifions si le tuple inversé est trié par ordre croissant. Pour ce faire, nous pouvons parcourir le tuple et comparer chaque élément avec le suivant. Si un élément est supérieur au suivant, le tuple n'est pas trié par ordre croissant.

Ajoutez la fonction suivante à votre fichier tuple_sort.py :

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

Cette fonction parcourt le tuple t et renvoie False si un élément est supérieur au suivant. Sinon, elle renvoie True.

Maintenant, utilisons cette fonction pour vérifier si notre tuple inversé est trié par ordre croissant :

my_tuple = (5, 2, 8, 1, 9)
print("Original tuple:", my_tuple)

reversed_tuple = my_tuple[::-1]
print("Reversed tuple:", reversed_tuple)

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

if is_ascending(reversed_tuple):
    print("Reversed tuple is in ascending order.")
else:
    print("Reversed tuple is not in ascending order.")

Exécutez le script à nouveau :

python tuple_sort.py

Vous devriez voir la sortie suivante :

Original tuple: (5, 2, 8, 1, 9)
Reversed tuple: (9, 1, 8, 2, 5)
Reversed tuple is not in ascending order.

Cela confirme que le tuple inversé n'est pas trié par ordre croissant, comme prévu.

Utiliser sorted() avec reverse=True

Dans cette étape, nous approfondirons l'utilisation de la fonction sorted() avec le paramètre reverse=True pour trier les tuples par ordre décroissant. Nous explorerons différents scénarios et montrerons comment appliquer cette technique de manière efficace.

Revoyons le tuple avec lequel nous avons travaillé :

my_tuple = (5, 2, 8, 1, 9)
print("Original tuple:", my_tuple)

Assurez-vous que ce code est dans votre fichier tuple_sort.py. Sinon, ajoutez-le maintenant.

Comme nous l'avons appris dans la première étape, la fonction sorted() peut être utilisée pour trier les éléments d'un tuple. Lorsque nous définissons reverse=True, elle trie les éléments par ordre décroissant. Utilisons cela pour trier notre tuple et afficher le résultat :

my_tuple = (5, 2, 8, 1, 9)
print("Original tuple:", my_tuple)

sorted_tuple = tuple(sorted(my_tuple, reverse=True))
print("Sorted tuple (descending):", sorted_tuple)

Maintenant, exécutez le script :

python tuple_sort.py

Vous devriez voir la sortie suivante :

Original tuple: (5, 2, 8, 1, 9)
Sorted tuple (descending): (9, 8, 5, 2, 1)

Maintenant, considérons un autre scénario. Supposons que nous ayons un tuple de chaînes de caractères :

string_tuple = ("apple", "banana", "cherry", "date")
print("Original string tuple:", string_tuple)

Ajoutez ce code à votre fichier tuple_sort.py.

Nous pouvons également trier ce tuple par ordre décroissant en utilisant sorted() avec reverse=True. Lors du tri de chaînes de caractères, Python utilise l'ordre lexicographique (c'est-à-dire l'ordre alphabétique du dictionnaire).

Ajoutez les lignes suivantes à votre script :

string_tuple = ("apple", "banana", "cherry", "date")
print("Original string tuple:", string_tuple)

sorted_string_tuple = tuple(sorted(string_tuple, reverse=True))
print("Sorted string tuple (descending):", sorted_string_tuple)

Exécutez le script à nouveau :

python tuple_sort.py

Vous devriez voir la sortie suivante :

Original string tuple: ('apple', 'banana', 'cherry', 'date')
Sorted string tuple (descending): ('date', 'cherry', 'banana', 'apple')

Comme vous pouvez le voir, les chaînes de caractères sont triées par ordre alphabétique inverse.

En résumé, la fonction sorted() avec reverse=True offre un moyen flexible de trier les tuples (et autres itérables) par ordre décroissant, qu'ils contiennent des nombres ou des chaînes de caractères. Il s'agit d'une technique fondamentale pour la manipulation de données en Python.

Résumé

Dans ce laboratoire (lab), vous avez exploré comment manipuler les tuples et les trier par ordre décroissant. Vous avez appris que les tuples sont immuables, c'est-à-dire qu'ils ne peuvent pas être modifiés après leur création. Pour trier un tuple par ordre décroissant, vous avez utilisé la fonction sorted() avec le paramètre reverse=True, qui renvoie une nouvelle liste triée. Cette liste a ensuite été convertie en tuple.

Vous avez créé un fichier tuple_sort.py, ajouté du code pour trier un tuple d'exemple par ordre décroissant et vérifié la sortie. Le laboratoire a démontré comment utiliser efficacement la fonction sorted() pour trier les tuples par ordre décroissant.