Сортировка списка в Python: разница между sorted и sorted

Бизнес

В Python существует два способа сортировки списка по возрастанию или убыванию.

  • sort()
  • sorted()

Если вы хотите отсортировать строку или кортеж, используйте sorted().

Здесь представлена следующая информация.

  • Метод типа list, который сортирует исходный списокsort()
  • Создайте новый отсортированный список, встроенная функция: .sorted()
  • Как сортировать строки и кортежи

Сортировка исходного списка, метод типа list: sort()

sort() — это метод типа списка.

Деструктивный процесс, при котором переписывается сам исходный список.

org_list = [3, 1, 4, 5, 2]

org_list.sort()
print(org_list)
# [1, 2, 3, 4, 5]

Обратите внимание, что sort() возвращает None.

print(org_list.sort())
# None

По умолчанию используется сортировка по возрастанию. Если вы хотите сортировать в порядке убывания, установите аргумент reverse в true.

org_list.sort(reverse=True)
print(org_list)
# [5, 4, 3, 2, 1]

Создайте новый отсортированный список, встроенная функция: sorted()

sorted() — это встроенная функция.

Возвращает отсортированный список, если в качестве аргумента указан список, который нужно отсортировать. Это неразрушающий процесс, который не изменяет исходный список.

org_list = [3, 1, 4, 5, 2]

new_list = sorted(org_list)
print(org_list)
print(new_list)
# [3, 1, 4, 5, 2]
# [1, 2, 3, 4, 5]

Как и в sort(), по умолчанию используется сортировка по возрастанию. Если вы хотите сортировать в порядке убывания, установите аргумент reverse в true.

new_list_reverse = sorted(org_list, reverse=True)
print(org_list)
print(new_list_reverse)
# [3, 1, 4, 5, 2]
# [5, 4, 3, 2, 1]

Как сортировать строки и кортежи

Поскольку строки и кортежи неизменяемы, не существует метода sort() для перезаписи исходного объекта.

С другой стороны, аргументом функции sorted(), которая генерирует отсортированный список как новый объект, может быть как строка или кортеж, так и список. Однако, поскольку sorted() возвращает список, его необходимо преобразовать в строку или кортеж.

Сортировка строк

Если в качестве аргумента функции sorted() указана строка, возвращается список, в котором каждый символ отсортированной строки хранится как элемент.

org_str = 'cebad'

new_str_list = sorted(org_str)
print(org_str)
print(new_str_list)
# cebad
# ['a', 'b', 'c', 'd', 'e']

Чтобы объединить список строк в одну строку, используйте метод join().

new_str = ''.join(new_str_list)
print(new_str)
# abcde

Если вы хотите сортировать в порядке убывания, установите аргумент reverse в true.

new_str = ''.join(sorted(org_str))
print(new_str)
# abcde

new_str_reverse = ''.join(sorted(org_str, reverse=True))
print(new_str_reverse)
# edcba

Размер строки определяется кодовой точкой Unicode (кодом символа) символа.

Сортировка кортежей

Кортежи — это то же самое, что и строки; указание кортежа в качестве аргумента функции sorted() возвращает отсортированный список элементов.

org_tuple = (3, 1, 4, 5, 2)

new_tuple_list = sorted(org_tuple)
print(org_tuple)
print(new_tuple_list)
# (3, 1, 4, 5, 2)
# [1, 2, 3, 4, 5]

Чтобы преобразовать список в кортеж, используйте tuple().

new_tuple = tuple(new_tuple_list)
print(new_tuple)
# (1, 2, 3, 4, 5)

Если вы хотите сортировать в порядке убывания, установите аргумент reverse в true.

new_tuple = tuple(sorted(new_tuple_list))
print(new_tuple)
# (1, 2, 3, 4, 5)

new_tuple_reverse = tuple(sorted(new_tuple_list, reverse=True))
print(new_tuple_reverse)
# (5, 4, 3, 2, 1)
Copied title and URL