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

Бізнес

У Python є два способи сортувати список у порядку зростання або спадання.

  • sort()
  • sorted()

Якщо ви хочете відсортувати рядок або кортеж, використовуйте sorted().

Тут наведено наступну інформацію.

  • Метод списку типів, який сортує вихідний список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)