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