Comment vérifier si un ensemble est trié lorsqu'il est converti en liste 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 (lab), vous apprendrez à déterminer si un ensemble (set), une fois converti en liste (list) en Python, donne une liste triée. Ce labo explore la conversion de listes en ensembles pour supprimer les doublons et montre comment reconvertir un ensemble en liste à l'aide de la fonction list().

Ensuite, vous apprendrez à vérifier si la liste obtenue est triée en la comparant à une version triée d'elle-même. Cela implique la création de scripts Python pour convertir des listes en ensembles, afficher les ensembles résultants, reconvertir les ensembles en listes et, enfin, implémenter une méthode pour vérifier si la liste est triée.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python/DataStructuresGroup -.-> python/lists("Lists") python/DataStructuresGroup -.-> python/sets("Sets") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/lists -.-> lab-559565{{"Comment vérifier si un ensemble est trié lorsqu'il est converti en liste en Python"}} python/sets -.-> lab-559565{{"Comment vérifier si un ensemble est trié lorsqu'il est converti en liste en Python"}} python/build_in_functions -.-> lab-559565{{"Comment vérifier si un ensemble est trié lorsqu'il est converti en liste en Python"}} python/data_collections -.-> lab-559565{{"Comment vérifier si un ensemble est trié lorsqu'il est converti en liste en Python"}} end

Explorer la conversion en ensemble (set)

Dans cette étape, vous apprendrez à convertir une liste (list) en ensemble (set) en Python. Les ensembles sont des collections non ordonnées d'éléments uniques. Cela signifie qu'un ensemble ne peut pas contenir de valeurs dupliquées. Convertir une liste en ensemble est un moyen utile de supprimer les éléments dupliqués de la liste.

Tout d'abord, créons un fichier Python nommé convert_to_set.py dans votre répertoire ~/project en utilisant l'éditeur VS Code.

## Create a list with duplicate elements
my_list = [1, 2, 2, 3, 4, 4, 5]

## Convert the list to a set
my_set = set(my_list)

## Print the set
print(my_set)

Maintenant, exécutons le script Python. Ouvrez votre terminal et accédez au répertoire ~/project :

cd ~/project

Ensuite, exécutez le script en utilisant la commande python :

python convert_to_set.py

Vous devriez voir la sortie suivante :

{1, 2, 3, 4, 5}

Comme vous pouvez le voir, les éléments dupliqués ont été supprimés, et l'ensemble ne contient que des valeurs uniques.

Essayons un autre exemple avec des chaînes de caractères (strings) :

## Create a list of strings with duplicates
string_list = ["apple", "banana", "apple", "orange", "banana"]

## Convert the list to a set
string_set = set(string_list)

## Print the set
print(string_set)

Enregistrez les modifications dans convert_to_set.py et exécutez le script à nouveau :

python convert_to_set.py

La sortie sera :

{'orange', 'banana', 'apple'}

Notez que l'ordre des éléments dans l'ensemble peut être différent de celui de la liste d'origine, car les ensembles ne sont pas ordonnés.

Convertir en liste et vérifier le tri

Dans cette étape, vous apprendrez à convertir un ensemble (set) en liste (list) et à vérifier si la liste est triée. Cela implique d'utiliser la fonction list() pour convertir l'ensemble en liste, puis de comparer la liste triée avec la liste d'origine.

Continuons à utiliser le fichier convert_to_set.py dans votre répertoire ~/project. Nous allons ajouter du code pour convertir l'ensemble en liste et trier cette liste.

## Create a list with duplicate elements
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]

## Convert the list to a set to remove duplicates
my_set = set(my_list)

## Convert the set back to a list
my_list_from_set = list(my_set)

## Print the list obtained from the set
print("List from set:", my_list_from_set)

## Sort the list
my_list_from_set.sort()

## Print the sorted list
print("Sorted list:", my_list_from_set)

Maintenant, exécutons le script Python. Ouvrez votre terminal et accédez au répertoire ~/project :

cd ~/project

Ensuite, exécutez le script en utilisant la commande python :

python convert_to_set.py

Vous devriez voir une sortie similaire à ceci :

List from set: [1, 2, 3, 4, 5, 6, 9]
Sorted list: [1, 2, 3, 4, 5, 6, 9]

La première ligne montre la liste créée à partir de l'ensemble, qui contient des éléments uniques mais peut ne pas être dans l'ordre d'origine. La deuxième ligne montre la liste triée.

Maintenant, ajoutons une vérification pour voir si la liste d'origine (sans doublons et convertie en liste) est triée.

## Create a list with duplicate elements
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]

## Convert the list to a set to remove duplicates
my_set = set(my_list)

## Convert the set back to a list
my_list_from_set = list(my_set)

## Sort the list
sorted_list = sorted(my_list_from_set)

## Check if the list is sorted
if my_list_from_set == sorted_list:
    print("The list is already sorted.")
else:
    print("The list is not sorted.")

## Print the sorted list
print("Sorted list:", sorted_list)

Exécutez le script à nouveau :

python convert_to_set.py

Vous devriez voir une sortie similaire à ceci :

The list is not sorted.
Sorted list: [1, 2, 3, 4, 5, 6, 9]

Cela indique que la liste obtenue à partir de l'ensemble n'était pas initialement triée, et que la fonction sorted() a été utilisée pour créer une version triée.

Utiliser sorted() pour la comparaison

Dans cette étape, vous apprendrez à utiliser la fonction sorted() pour effectuer des comparaisons sans modifier la liste d'origine. La fonction sorted() renvoie une nouvelle liste triée à partir d'un itérable, tandis que la méthode .sort() trie la liste en place. Cela est utile lorsque vous souhaitez conserver la liste d'origine intacte.

Continuons à utiliser le fichier convert_to_set.py dans votre répertoire ~/project. Nous allons modifier le code pour utiliser sorted() et le comparer avec la liste d'origine.

## Create a list with duplicate elements
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]

## Convert the list to a set to remove duplicates
my_set = set(my_list)

## Convert the set back to a list
my_list_from_set = list(my_set)

## Use sorted() to get a new sorted list
sorted_list = sorted(my_list_from_set)

## Print the original list from set
print("Original list from set:", my_list_from_set)

## Print the sorted list
print("Sorted list:", sorted_list)

## Check if the original list is equal to the sorted list
if my_list_from_set == sorted_list:
    print("The original list is sorted.")
else:
    print("The original list is not sorted.")

Maintenant, exécutons le script Python. Ouvrez votre terminal et accédez au répertoire ~/project :

cd ~/project

Ensuite, exécutez le script en utilisant la commande python :

python convert_to_set.py

Vous devriez voir une sortie similaire à ceci :

Original list from set: [1, 2, 3, 4, 5, 6, 9]
Sorted list: [1, 2, 3, 4, 5, 6, 9]
The original list is sorted.

Dans ce cas, la liste d'origine obtenue à partir de l'ensemble était déjà triée. Modifions la liste d'origine pour nous assurer qu'elle n'est pas triée initialement.

## Create a list with duplicate elements
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]

## Convert the list to a set to remove duplicates
my_set = set(my_list)

## Convert the set back to a list
my_list_from_set = list(my_set)

## Shuffle the list to make sure it's not sorted
import random
random.shuffle(my_list_from_set)

## Use sorted() to get a new sorted list
sorted_list = sorted(my_list_from_set)

## Print the original list from set
print("Original list from set:", my_list_from_set)

## Print the sorted list
print("Sorted list:", sorted_list)

## Check if the original list is equal to the sorted list
if my_list_from_set == sorted_list:
    print("The original list is sorted.")
else:
    print("The original list is not sorted.")

Exécutez le script à nouveau :

python convert_to_set.py

Vous devriez voir une sortie similaire à ceci :

Original list from set: [9, 2, 4, 5, 6, 1, 3]
Sorted list: [1, 2, 3, 4, 5, 6, 9]
The original list is not sorted.

Maintenant, la liste d'origine est mélangée, et la fonction sorted() fournit une version triée pour la comparaison, démontrant que la liste d'origine reste inchangée.

Résumé

Dans ce laboratoire (lab), vous avez appris à convertir une liste en ensemble (set) en Python, éliminant ainsi efficacement les éléments dupliqués. Les ensembles sont des collections non ordonnées, donc l'ordre des éléments peut changer lors de la conversion.

Vous avez également commencé à apprendre à convertir un ensemble en liste et à vérifier si la liste résultante est triée. Cela implique d'utiliser la fonction list() et de comparer la liste triée avec la liste d'origine.