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

Бизнес

В 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