Как отсортировать списки в Python

How Sort Lists Python



В этой статье будет рассмотрено руководство по сортировке списков в Python. Объект списка Python - это набор из одного или нескольких элементов, разделенных запятыми. Это итеративный объект, и к его элементам можно получить доступ, перебирая список с помощью операторов цикла и других выражений. Вы можете отсортировать список Python, используя методы sort и sorted, оба из которых описаны в статье. Все примеры кода в этой статье протестированы с Python 3.9.5 в Ubuntu 21.04.

Метод сортировки

Метод sort сортирует список на месте. Другими словами, он изменит объект списка, который вы собираетесь отсортировать, и переупорядочит его элемент. Если вам не нужен исходный список и вы не возражаете, что список меняет порядок элементов на месте, это наиболее эффективный метод сортировки списка в Python. Рассмотрим этот пример:







взнак равно [2, 8, 6, 4]

файл.Сортировать()

Распечатать (в)

После выполнения приведенного выше примера кода вы должны получить следующий результат:



[2, 4, 6, 8]

Первый оператор в примере кода определяет список. Затем по списку вызывается метод сортировки. Когда вы распечатаете список, вы увидите, что порядок исходного списка был изменен.



По умолчанию Python сортирует список в порядке возрастания. Если вы хотите отсортировать список в порядке убывания, используйте обратный метод, как показано в примере кода ниже:





взнак равно [2, 8, 6, 4]

файл.Сортировать()

файл.задний ход()

Распечатать (в)

После выполнения приведенного выше примера кода вы должны получить следующий результат:

[8, 6, 4, 2]

Обратный метод также изменяет список Python на месте без создания нового списка.



Если ваш список содержит строковые элементы, вызов метода сортировки для него упорядочит его в алфавитном порядке, где сначала упорядочиваются символы и числа. Взгляните на пример кода ниже:

взнак равно ['s', 'к', 'С участием', '4', '#']

файл.Сортировать()
Распечатать (в)

После выполнения приведенного выше примера кода вы должны получить следующий результат:

['#', '4', 'к', 's', 'С участием']

Вы также можете использовать обратный метод для списка, содержащего строковые элементы.

взнак равно ['s', 'к', 'С участием', '4', '#']

файл.Сортировать()

файл.задний ход()

Распечатать (в)

После выполнения приведенного выше примера кода вы должны получить следующий результат:

['С участием', 's', 'к', '4', '#']

Сортированный метод

Сортированный метод также сортирует список Python так же, как и метод сортировки. Однако вместо изменения исходного списка он возвращает новый список, так что исходный список остается нетронутым на случай, если вы захотите его повторно использовать. Рассмотрим код ниже:

list1знак равно ['s', 'к', 'С участием', '4', '#']

list2знак равно отсортированный(list1)

Распечатать (list1,list2)

После выполнения приведенного выше примера кода вы должны получить следующий результат:

['s', 'к', 'С участием', '4', '#'] ['#', '4', 'к', 's', 'С участием']

Вы можете видеть в выводе, что list1 не поврежден, а list2 теперь имеет отсортированные элементы. Вы также можете использовать обратный метод для list2, чтобы изменить его методологию упорядочения.

Обратный аргумент

Вы можете использовать обратный аргумент в качестве альтернативы обратной функции как в методах сортировки, так и в методах сортировки, чтобы получить отсортированный список в порядке убывания. Просто укажите значение True, чтобы изменить порядок сортировки:

list1знак равно ['s', 'к', 'С участием', '4', '#']

list2знак равно отсортированный(list1,задний ходзнак равноПравда)

Распечатать (list1,list2)

После выполнения приведенного выше примера кода вы должны получить следующий результат:

['s', 'к', 'С участием', '4', '#'] ['С участием', 's', 'к', '4', '#']

Использование ключевой функции для определения собственной логики сортировки элементов списка

И в методах сортировки, и в методах сортировки можно указать дополнительный ключевой аргумент, который принимает вызываемую функцию в качестве значения. Этому ключевому аргументу может быть назначена существующая функция из встроенных модулей Python, или вы можете предоставить свою собственную функцию с настраиваемой логикой. Взгляните на пример кода ниже:

list1знак равно ['abcde', 'xyz', 'ijkl']

list2знак равно отсортированный(list1,ключзнак равноlen)

Распечатать (list1,list2)

список1.Сортировать(ключзнак равноlen)

Распечатать (list1)

После выполнения приведенного выше примера кода вы должны получить следующий результат:

['abcde', 'xyz', 'ijkl'] ['xyz', 'ijkl', 'abcde']

['xyz', 'ijkl', 'abcde']

В примере кода показано использование ключевого аргумента как в методах сортировки, так и в методах сортировки. Предоставляемая ему функция называется len, которая определяет длину строкового объекта или итерируемого объекта. Функция или вызываемый объект должны изначально принимать только один аргумент. Вы назначаете его ключевому аргументу без фигурных скобок. Вызываемая функция, передаваемая ключевому аргументу, вызывается для каждого элемента списка. Значения, возвращаемые этим вызываемым методом, затем используются в качестве ключа для сортировки списка. Следовательно, передача функции len ключевому аргументу сортирует элементы списка в порядке их длины, то есть от самого короткого к самому длинному. Как указывалось ранее, вы всегда можете использовать обратный метод, чтобы изменить методологию сортировки.

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

list1знак равно [('манго', 99), ('апельсин', 51), ('банан', 76)]

список1.Сортировать(ключзнак равнолямбдаинвентарь: инвентарь[1])

Распечатать (list1)

После выполнения приведенного выше примера кода вы должны получить следующий результат:

[('апельсин', 51), ('банан', 76), ('манго', 99)]

Лямбда-функция поставляется с перечнем аргументов, который представляет собой каждый элемент списка в форме кортежа. Затем он возвращает второй элемент каждого кортежа в качестве ключа (с индексом 1). Затем функция сортировки сортирует все кортежи по второму элементу в порядке возрастания. Вы также можете использовать обратную функцию или обратный аргумент в конечном результате, чтобы изменить порядок сортировки.

Заключение

Это несколько способов, с помощью которых вы можете сортировать содержимое итеративного списка в Python. Ключевой аргумент позволяет вам написать свою собственную логику сортировки, подходящую для приложений, потребности которых могут отличаться от потребностей встроенных методов сортировки.