Как отсортировать практически любой тип списка в Python
Программирование

Как отсортировать практически любой тип списка в Python

Списки с несколькими типами данных могут быстро выйти из-под контроля. Вот как отсортировать их с помощью Python

Сортировка списка в Python позволяет расположить его элементы в порядке возрастания или убывания

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

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

Вы можете сортировать элементы списка или массива с помощью метода Python sort()

Метод sort() в Python принимает два необязательных аргумента, а синтаксис выглядит следующим образом:

list.sort(key = function, reverse =TrueFalse

По умолчанию метод sort() располагает элементы списка в порядке возрастания:

myList =  'C''D''B''A''F'

myList.sort().

print(myList).

Output:  'A''B''C''D''F'

Вы можете использовать аргумент reverse для просмотра списка в порядке убывания:

myList =  'C''D''B''A''F'

myList.sort(reverse =True

print(myList).

Output:  'F''D''C''B''A'

Можно также упорядочить элементы списка по длине каждой строки

Для этого создайте функцию и передайте ее в метод sort() , используя необязательный аргумент key :

myList =  'MUO''Python''JavaScript''Sort''Sortlists'
defsortLength(item)
returnlen(item).

myList.sort(reverse =True, key = sortLength).

print(myList).

Output:  'JavaScript''Sortlists''Python''Sort''MUO'

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

Вы можете использовать метод sort() для сортировки списка словарей

Давайте отсортируем задачи в приведенном ниже словаре по времени их выполнения:

myArray =  .

'Task''Wash''Time'12. 00},
'Task''Football''Time'24. 00},
'Task''Sort''Time'17. 00},
'Task''Code''Time'15. 00

defsortByTime(item)
returnitem 'Time'

myArray.sort(key = sortByTime).

print(myArray)

Поскольку значения времени являются целыми числами, приведенный выше блок кода переставляет массив в зависимости от времени выполнения задачи

Похожие: Как работают массивы и списки в Python

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

Для сортировки по строкам в массиве примера достаточно изменить Время в квадратной скобке на Задача :

myArray =  .

'Task''Wash''Time'12. 00},
'Task''Football''Time'24. 00},
'Task''Sort''Time'17. 00},
'Task''Code''Time'15. 00

defsortByTime(item)
returnitem 'Task'

myArray.sort(key = sortByTime).

print(myArray)

Вы также можете отсортировать задачи в обратном порядке, установив reverse в true:

myArray.sort(key = sortByTime, reverse =True

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

myArray.sort(key =lambdagetTime: getTime 'Time' ).

print(myArray)

Как отсортировать вложенный список в Python

Вы можете отсортировать вложенный список кортежей по индексу каждого вложенного элемента в этом списке

Например, приведенный ниже код использует третий элемент в каждом кортеже для сортировки списка по возрастанию:

Alist =  (1920), (), (15), (), (1019).

defsortByThirdIndex(a)
returna 

Alist.sort(key = sortByThirdIndex)
print(Alist).

Output:  (), (), (1019), (15), (1920) 

В приведенном выше выводе третий элемент в каждом кортеже последовательно увеличивается от нуля до двадцати

Обратите внимание, что это не работает с множеством Python, поскольку вы не можете его индексировать. Кроме того, каждое гнездо в списке должно принадлежать одному типу данных

Похожие: Что такое набор в Python и как его создать

Однако, чтобы расположить вывод в порядке убывания:

Alist.sort(key = getIndex, reverse =True
print(Alist).

Output:  (1920), (15), (1019), (), () 

Давайте посмотрим, как это выглядит с функцией лямбда :

Alist =  (1920), (), (15), (), (1019).

newList = sorted(Alist, key =lambdaa: a  ).

print(newList).

Output:  (), (), (1019), (15), (1920) 

Как отсортировать список с помощью метода Sorted()

В качестве альтернативы можно использовать метод sorted()

Хотя он работает аналогично методу sort() , он создает новый отсортированный список, не изменяя исходный. Его синтаксическая схема также немного отличается

Синтаксис метода sorted() обычно выглядит следующим образом:

sorted(list, key = function, reverse =TrueFalse

Итак, чтобы отсортировать список с помощью метода sorted() , необходимо создать новую переменную для отсортированного списка:

Alist =  (1920), (), (15), (), (1019).

defgetIndex(a)returna 

newList = sorted(Alist, key = getIndex).

print(newList).

Output:  (), (), (1019), (15), (1920) 

Метод sorted() также принимает функцию lambda в качестве ключа:

Alist =  (1920), (), (15), (), (1019).

newList = sorted(Alist, key =lambdaa: a  ).

print(newList).

Output:  (), (), (1019), (15), (1920) 

Где можно применить сортировку списка?

Уверенное владение методом сортировки в Python необходимо для эффективного программирования. Он позволяет вам управлять тем, как список или массив будет выглядеть, и вы всегда можете применить его в реальных проектах. Например, сортировка списка в Python может пригодиться при перегруппировке данных из API или базы данных, чтобы они были более понятны конечному пользователю

Об авторе

Алексей Белоусов

Привет, меня зовут Филипп. Я фрилансер энтузиаст . В свободное время занимаюсь переводом статей и пишу о потребительских технологиях для широкого круга изданий , не переставая питать большую страсть ко всему мобильному =)

Комментировать

Оставить комментарий