sort и sorted в python3


sorted в python3 — один из двух возможных способов сортировки данных в списках. Отличается от метода sort() тем, что не изменяет оригинальные данные.



Сортировка sort и sorted в python3


Для сортировки данных Python предлагает две опции. Объектом, в котором выполняется сортировка, является список (list).



1.

Метод sort() — принимает значения, меняет порядок и сохраняет заменяя ту информацию, которая существовала изначально. Изначально заданные данные изменяются и оказываются навсегда утерянными.


Для демонстрации возьмем список из чисел

>>> numbers = [5, 32, 97, 4, 11, 90]

>>> numbers.sort()

>>> numbers

[4, 5, 11, 32, 90, 97]


Начальный порядок вернуть теперь нельзя, информация, содержащаяся в переменной, перезаписана.



2.

Функция sorted() — выполняет сортировку элементов списка и сохраняет новые значения в качестве копии. Исходный список или значение исходной переменной остается в том же виде, в котором было задано.

sorted() является BIF, т.е. built in function.



>>> numbers = [5, 32, 97, 4, 11, 90]

>>> numbers2 = sorted(numbers)

>>> print (numbers)

[5, 32, 97, 4, 11, 90]

>> print (numbers2)

[4, 5, 11, 32, 90, 97]



Оба рассмотренных варианта позволяют выбирать порядок сортировки. Чтобы порядок стал убывающим передается аргумент reverse=True. По умолчанию сортировка происходит в возрастающем порядке — от меньшего значения к большему.



Сортировка по убыванию sorted() в Python3


>>> numbers2 = sorted(numbers, reverse=True)

>>> print (numbers2)

[97, 90, 32, 11, 5, 4]


Сортировка по убыванию sort()


>>> numbers.sort(reverse=True)

>>> print(numbers)

[97, 90, 32, 11, 5, 4]



Python BIF


Посмотреть все BIF можно следующим образом:

>>>dir(__builtins__)

Вызвать справку по определенной встроенной функции

>>> help(sorted)

Читайте про создание модуля в Python.

Сказать спасибо