Sort () и Sorted () в Python

Sort () и Sorted () в Python Программирование и разработка

Сортировка — это метод переупорядочения элементов или данных в порядке возрастания или убывания. В программировании на Python мы можем очень легко выполнять сортировку с помощью методов sort () и sorted ().

Методы sorted () и sort () упорядочивают элементы в порядке возрастания или убывания. Даже оба выполняют одинаковые операции, но все же они разные.

Для использования этих руководств пользователи должны иметь некоторые базовые представления о списках, кортежах и наборах. Мы будем использовать некоторые базовые операции с этими структурами данных, чтобы показать ясную картину встроенных методов sort () и sorted (). И для этого я использую Python3, поэтому, если вы используете Python2, может быть некоторая разница в выводе.

Sorted ()

Синтаксис функции sorted ():

sorted(iterable, key, reverse=False)

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

Функция sorted () будет принимать итерируемые и возвращать отсортированные итерируемые элементы, которые по умолчанию будут располагаться в порядке возрастания. По умолчанию функция sorted () упорядочивает элементы в порядке возрастания, поскольку обратное = False.

Sorting Numbers

Sorting Numbers

В ячейке номер [4] : мы создали числовой список номеров имен.

В ячейке номер [5] : мы вызвали функцию sorted () и передали ей числовой список (числа). Взамен мы получили отсортированный список, который также является новым списком. Новый список означает, что исходный список, который мы передали в sorted () в качестве параметра, не изменился. По номеру ячейки [6] мы подтверждаем, что исходный список не изменился даже после применения sorted ().

Функция sorted () имеет следующие свойства:

  • Функцию sorted () не нужно определять перед использованием. Мы можем вызвать его напрямую, как в приведенном выше примере (номер ячейки [5]).
  • Функция sorted () по умолчанию будет выполнять упорядочение данных в порядке возрастания, если мы не передадим в нее никаких параметров.
  • Функция sorted () возвращает новый список, что означает, что исходный список не изменился, как показано в приведенном выше примере номера ячейки [6].

Мы также можем присвоить результаты sorted () обратно новой переменной, как показано ниже:

Мы также можем присвоить результаты sorted () обратно новой переменной, как показано ниже

В ячейке номер [13] : мы создали числовой список номеров имен. Мы вызвали функцию sorted () и передали ей числовой список (числа).

Затем мы присвоили результат функции sorted () новой переменной sort_results для дальнейшего использования.

Примените sorted () к кортежам и наборам

Функция sorted () также работает с кортежами и наборами для сортировки элементов.

Функция sorted () также работает с кортежами и наборами для сортировки элементов

В ячейке номер [15] : мы создали кортеж (num_tuple) и установили (num_sets).

В ячейке номер [18] : мы вызвали функцию сортировки и присвоили возвращаемые результаты новым переменным (tuple_sorted и set_sorted). Затем мы распечатали результаты и получили отсортированные данные. Но результаты находятся в формате списка, а не в кортежах и задают формат, поскольку мы передали параметры, потому что по умолчанию сортированный возвращает результаты в формате списка. Итак, если мы хотим получить результаты в том же формате (наборы и кортежи), мы должны использовать приведение.

мы вызвали функцию сортировки и присвоили возвращаемые результаты

В ячейке номер [22] : мы видим из вывода, что теперь результат в формате кортежа и установлен так, как мы ожидали, потому что при вызове функции sorted () мы также применили оператор приведения, который преобразует список обратно в требуемый формат.

Сортировочная строка

Теперь мы собираемся применить функцию sorted () к списку строк, как показано ниже. Вы увидите, что перед передачей строки в функцию sorted () мы используем метод split (), параметром формата которого по умолчанию является пробел (разделенный пробелом). Причина в том, чтобы получить всю строку в виде списка, но разбить всю строку, когда появится пробел. Если мы не сделаем так, как показано ниже, вся строка будет разделена по символам и не будет получать нужный результат.

Итак, если мы не используем метод split () во время строки sorted (), мы получим результаты, как показано ниже:

Итак, если мы не используем метод split () во время строки sorted ()

Вы можете видеть, что вся строка, когда мы передаем ее в функцию sorted (), возвращает список символов. Теперь результаты не соответствуют нашим требованиям.

Итак, чтобы решить эту проблему, мы должны разделить строку (), как показано ниже. Здесь мы разделяем строку пробелом, потому что у нас есть главный символ пробела, который разделяет строки. Но это не ограничение; вы можете использовать любой модуль форматирования внутри метода split () в соответствии с положением вашей строки.

Итак, чтобы решить эту проблему, мы должны разделить строку ()

В ячейке номер [27] : мы инициализируем строку, а затем разделяем эту строку из пространства в качестве разделителя форматирования. И мы получаем список каждой строки всей строки вместо символов строки.

В ячейке номер [28] : мы вызываем функцию sorted () и передаем ей str_value_list в качестве параметра.

В ячейке номер [29] : Наконец, мы печатаем отсортированный список строк, возвращаемый функцией sorted (). В ячейке [30] мы снова печатаем исходный список, чтобы подтвердить, что исходный список не был изменен функцией sorted ().

Sorting with the reverse = True Argument

Теперь мы изменим параметр по умолчанию функции sorted () с False на True. Когда мы меняем значение обратного с False на True, тогда функция sorted () сортирует данные в порядке убывания.

Теперь мы изменим параметр по умолчанию функции sorted ()

В ячейке [3] : Мы создали целочисленный список номеров имен.

В ячейке [4] : мы передаем список (числа) в функцию sorted (). Вместе с тем, мы изменили обратное = True. Поскольку reverse = True, мы получили данные в порядке убывания.

В ячейке [5] : мы печатаем исходный список, чтобы убедиться, что исходный список не изменился.

Сортировка регистра имеет значение

Python использует код Unicode для определения первого символа строки перед сортировкой по убыванию или возрастанию. Таким образом, функция sorted () будет обрабатывать строчные и прописные символы по-разному, даже если такие же символы, как A или значение, будут отличаться, как показано ниже:

Python использует код Unicode для определения первого символа строки

Итак, чтобы понять это, мы снова напишем небольшую программу сортировки строк.

Итак, чтобы понять это, мы снова напишем небольшую программу сортировки строк

В ячейке [6] : Мы создали список имен строк, в котором все первые символы заглавны.

В ячейке [7] : Когда мы отсортировали names_case, мы получили желаемый результат.

В ячейке [8] : когда мы меняем первый символ Harman на harman и Apple на apple и снова сортируем список, мы получили неожиданный результат, потому что результат показывает, что строка с яблоком находится на 3-й позиции в списке, что на самом деле должно быть в позиции 1 в индексе списка. Это сделано из-за кода Unicode, который python использовал для проверки их значения.

В ячейке [11] : мы печатаем имя первого символа с его значением.

sorted () с использованием ключевого параметра

Функция sorted () имеет более мощную функцию, которая является ключевым аргументом. Этот ключ ожидает функцию, и каждый элемент в списке должен пройти к этому ключу перед генерацией окончательного вывода.

Мы можем понять это из этого базового примера сортировки строк. Ранее мы обнаружили, что python использует метод Unicode для определения первого значения символа, а затем, в соответствии с этим, сортирует элементы. Мы можем преодолеть это, используя ключевые функции, и наш результат будет соответствовать нашим ожиданиям.

Мы можем понять это из этого базового примера сортировки строк

Теперь мы можем видеть, что из результата, даже если первый символ маленький или заглавный, мы получаем результаты в соответствии с нашим ожиданием, потому что ключ, который мы передаем, преобразует каждый элемент в небольшой регистр перед переходом к сортировке. Тем не менее, как мы видели, исходное значение будет напечатано.

Sort () Function

Синтаксис функции sort ():

list.sort(key,reverse=False)

Основное различие между функциями sort () и sorted ():

Основное различие между функциями sort () и sorted ()

В ячейке [18] мы видим, что метод sort () является частью списка, а не встроенным методом. Метод sort () также не работает с кортежами и наборами. Метод sort () работает только со списком, поскольку он является частью класса списка.

Мы создали новый список и вызвали метод sort () при вызове sorted (), но мы получили ошибку, потому что, как мы говорили ранее, это не встроенный метод.

Мы создали новый список и вызвали метод sort () при вызове sorted ()

Мы можем вызвать это, только используя список с оператором точки, как показано выше в синтаксисе.

Итак, мы снова вызываем метод sort () со списком (числами). И наши данные располагаются в порядке возрастания, как по умолчанию reverse = False. Но когда мы распечатали исходный список в ячейке с номером [28], мы обнаружили, что исходный список также изменился, потому что метод sort () не возвращает итерацию.

Заключение

Итак, мы изучили методы sort () и sorted (). Мы также видели, что метод sort () не является встроенным методом, потому что это класс списка и может обращаться только к объекту списка. Но метод sorted () является встроенным и также может работать с кортежем и наборами.

Читайте также:  Оценщики проверяют набор данных Titanic с помощью Python
Оцените статью
bestprogrammer.ru
Добавить комментарий