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