Cómo comprobar si un conjunto está ordenado cuando se convierte en una lista en Python

PythonPythonBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo determinar si un conjunto (set), cuando se convierte en una lista (list) en Python, resulta en una lista ordenada. El laboratorio explora la conversión de listas a conjuntos para eliminar duplicados y demuestra cómo convertir un conjunto de nuevo en una lista utilizando la función list().

Luego, aprenderás cómo verificar si la lista resultante está ordenada comparándola con una versión ordenada de sí misma. Esto implica crear scripts de Python para convertir listas en conjuntos, imprimir los conjuntos resultantes, convertir los conjuntos de nuevo en listas y, finalmente, implementar un método para verificar si la lista está ordenada.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) 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{{"Cómo comprobar si un conjunto está ordenado cuando se convierte en una lista en Python"}} python/sets -.-> lab-559565{{"Cómo comprobar si un conjunto está ordenado cuando se convierte en una lista en Python"}} python/build_in_functions -.-> lab-559565{{"Cómo comprobar si un conjunto está ordenado cuando se convierte en una lista en Python"}} python/data_collections -.-> lab-559565{{"Cómo comprobar si un conjunto está ordenado cuando se convierte en una lista en Python"}} end

Explorar la conversión a conjuntos (set)

En este paso, aprenderás cómo convertir una lista (list) en un conjunto (set) en Python. Los conjuntos son colecciones desordenadas de elementos únicos. Esto significa que un conjunto no puede contener valores duplicados. Convertir una lista en un conjunto es una forma útil de eliminar elementos duplicados de la lista.

Primero, creemos un archivo de Python llamado convert_to_set.py en tu directorio ~/project utilizando el editor 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)

Ahora, ejecutemos el script de Python. Abre tu terminal y navega hasta el directorio ~/project:

cd ~/project

Luego, ejecuta el script utilizando el comando python:

python convert_to_set.py

Deberías ver la siguiente salida:

{1, 2, 3, 4, 5}

Como puedes ver, los elementos duplicados se han eliminado y el conjunto contiene solo valores únicos.

Intentemos otro ejemplo con cadenas (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)

Guarda los cambios en convert_to_set.py y ejecuta el script nuevamente:

python convert_to_set.py

La salida será:

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

Observa que el orden de los elementos en el conjunto puede ser diferente al de la lista original, ya que los conjuntos son desordenados.

Convertir a lista (list) y verificar la ordenación

En este paso, aprenderás cómo convertir un conjunto (set) de nuevo en una lista (list) y luego verificar si la lista está ordenada. Esto implica utilizar la función list() para convertir el conjunto y luego comparar la lista ordenada con la lista original.

Continuemos utilizando el archivo convert_to_set.py en tu directorio ~/project. Agregaremos código para convertir el conjunto de nuevo en una lista y luego ordenarla.

## 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)

Ahora, ejecutemos el script de Python. Abre tu terminal y navega hasta el directorio ~/project:

cd ~/project

Luego, ejecuta el script utilizando el comando python:

python convert_to_set.py

Deberías ver una salida similar a la siguiente:

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

La primera línea muestra la lista creada a partir del conjunto, que contiene elementos únicos pero puede no estar en el orden original. La segunda línea muestra la lista ordenada.

Ahora, agreguemos una comprobación para ver si la lista original (con duplicados eliminados y convertida en una lista) está ordenada.

## 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)

Ejecuta el script nuevamente:

python convert_to_set.py

Deberías ver una salida similar a la siguiente:

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

Esto indica que la lista obtenida del conjunto no estaba inicialmente ordenada y se utilizó la función sorted() para crear una versión ordenada.

Usar sorted() para comparación

En este paso, aprenderás cómo utilizar la función sorted() para comparación sin modificar la lista original. La función sorted() devuelve una nueva lista ordenada a partir de un iterable, mientras que el método .sort() ordena la lista en su lugar. Esto es útil cuando quieres mantener la lista original intacta.

Continuemos utilizando el archivo convert_to_set.py en tu directorio ~/project. Modificaremos el código para usar sorted() y compararlo con la lista original.

## 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.")

Ahora, ejecutemos el script de Python. Abre tu terminal y navega hasta el directorio ~/project:

cd ~/project

Luego, ejecuta el script utilizando el comando python:

python convert_to_set.py

Deberías ver una salida similar a la siguiente:

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.

En este caso, la lista original obtenida del conjunto resultó estar ya ordenada. Modifiquemos la lista original para asegurarnos de que no esté ordenada inicialmente.

## 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.")

Ejecuta el script nuevamente:

python convert_to_set.py

Deberías ver una salida similar a la siguiente:

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.

Ahora, la lista original se ha desordenado y la función sorted() proporciona una versión ordenada para comparación, demostrando que la lista original permanece sin cambios.

Resumen

En este laboratorio (lab), aprendiste cómo convertir una lista (list) en un conjunto (set) en Python, eliminando efectivamente los elementos duplicados. Los conjuntos son colecciones desordenadas, por lo que el orden de los elementos puede cambiar durante la conversión.

También comenzaste a aprender cómo convertir un conjunto de nuevo en una lista y verificar si la lista resultante está ordenada. Esto implica utilizar la función list() y comparar la lista ordenada con la lista original.