Introdução
Neste laboratório, você aprenderá como determinar se um conjunto, quando convertido em uma lista em Python, resulta em uma lista ordenada. O laboratório explora a conversão de conjuntos a partir de listas para remover duplicatas e demonstra como converter um conjunto de volta em uma lista usando a função list().
Em seguida, você aprenderá como verificar se a lista resultante está ordenada, comparando-a com uma versão ordenada dela mesma. Isso envolve a criação de scripts Python para converter listas em conjuntos, imprimir os conjuntos resultantes, converter os conjuntos de volta em listas e, finalmente, implementar um método para verificar se a lista está ordenada.
Explorar a Conversão de Conjuntos
Nesta etapa, você aprenderá como converter uma lista em um conjunto em Python. Conjuntos (sets) são coleções não ordenadas de elementos únicos. Isso significa que um conjunto não pode conter valores duplicados. Converter uma lista em um conjunto é uma maneira útil de remover elementos duplicados da lista.
Primeiro, vamos criar um arquivo Python chamado convert_to_set.py no seu diretório ~/project usando o 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)
Agora, vamos executar o script Python. Abra seu terminal e navegue até o diretório ~/project:
cd ~/project
Em seguida, execute o script usando o comando python:
python convert_to_set.py
Você deve ver a seguinte saída:
{1, 2, 3, 4, 5}
Como você pode ver, os elementos duplicados foram removidos, e o conjunto contém apenas valores únicos.
Vamos tentar outro exemplo com 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)
Salve as alterações em convert_to_set.py e execute o script novamente:
python convert_to_set.py
A saída será:
{'orange', 'banana', 'apple'}
Observe que a ordem dos elementos no conjunto pode ser diferente da lista original, pois conjuntos são não ordenados.
Converter para Lista e Verificar a Ordenação
Nesta etapa, você aprenderá como converter um conjunto de volta em uma lista e, em seguida, verificar se a lista está ordenada. Isso envolve o uso da função list() para converter o conjunto e, em seguida, comparar a lista ordenada com a lista original.
Vamos continuar usando o arquivo convert_to_set.py no seu diretório ~/project. Adicionaremos código para converter o conjunto de volta para uma lista e, em seguida, ordená-la.
## 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)
Agora, vamos executar o script Python. Abra seu terminal e navegue até o diretório ~/project:
cd ~/project
Em seguida, execute o script usando o comando python:
python convert_to_set.py
Você deve ver uma saída semelhante à seguinte:
List from set: [1, 2, 3, 4, 5, 6, 9]
Sorted list: [1, 2, 3, 4, 5, 6, 9]
A primeira linha mostra a lista criada a partir do conjunto, que contém elementos únicos, mas pode não estar na ordem original. A segunda linha mostra a lista ordenada.
Agora, vamos adicionar uma verificação para ver se a lista original (com duplicatas removidas e convertida em uma 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)
Execute o script novamente:
python convert_to_set.py
Você deve ver uma saída semelhante à seguinte:
The list is not sorted.
Sorted list: [1, 2, 3, 4, 5, 6, 9]
Isso indica que a lista obtida do conjunto não estava inicialmente ordenada, e a função sorted() foi usada para criar uma versão ordenada.
Usar sorted() para Comparação
Nesta etapa, você aprenderá como usar a função sorted() para comparação sem modificar a lista original. A função sorted() retorna uma nova lista ordenada a partir do iterável, enquanto o método .sort() ordena a lista no local (in-place). Isso é útil quando você deseja manter a lista original intacta.
Vamos continuar usando o arquivo convert_to_set.py no seu diretório ~/project. Modificaremos o código para usar sorted() e compará-lo com a 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.")
Agora, vamos executar o script Python. Abra seu terminal e navegue até o diretório ~/project:
cd ~/project
Em seguida, execute o script usando o comando python:
python convert_to_set.py
Você deve ver uma saída semelhante à seguinte:
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.
Neste caso, a lista original obtida do conjunto acabou sendo já ordenada. Vamos modificar a lista original para garantir que ela não esteja 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.")
Execute o script novamente:
python convert_to_set.py
Você deve ver uma saída semelhante à seguinte:
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.
Agora, a lista original é embaralhada, e a função sorted() fornece uma versão ordenada para comparação, demonstrando que a lista original permanece inalterada.
Resumo
Neste laboratório, você aprendeu como converter uma lista em um conjunto (set) em Python, removendo efetivamente elementos duplicados. Conjuntos são coleções não ordenadas, então a ordem dos elementos pode mudar durante a conversão.
Você também começou a aprender como converter um conjunto de volta em uma lista e verificar se a lista resultante está ordenada. Isso envolve o uso da função list() e a comparação da lista ordenada com a lista original.



