Списки с несколькими типами данных могут быстро выйти из-под контроля. Вот как отсортировать их с помощью 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 или базы данных, чтобы они были более понятны конечному пользователю
Комментировать