Использование функции sorted() для сравнения
На этом этапе вы научитесь использовать функцию sorted()
для сравнения без изменения исходного списка. Функция sorted()
возвращает новый отсортированный список из итерируемого объекта, в то время как метод .sort()
сортирует список на месте. Это полезно, когда вы хотите сохранить исходный список в исходном виде.
Продолжим использовать файл convert_to_set.py
в каталоге ~/project
. Изменим код, чтобы использовать функцию sorted()
и сравнить ее результат с исходным списком.
## 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.")
Теперь запустим скрипт Python. Откройте терминал и перейдите в каталог ~/project
:
cd ~/project
Затем выполните скрипт с помощью команды python
:
python convert_to_set.py
Вы должны увидеть вывод, похожий на следующий:
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.
В этом случае исходный список, полученный из множества, оказался уже отсортированным. Изменим исходный список, чтобы убедиться, что изначально он не отсортирован.
## 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.")
Запустите скрипт снова:
python convert_to_set.py
Вы должны увидеть вывод, похожий на следующий:
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.
Теперь исходный список перемешан, и функция sorted()
предоставляет отсортированную версию для сравнения, показывая, что исходный список остается неизменным.