Python — сортировка списков
Сортировать список по алфавиту
Объекты списка имеют
sort()
метод, который по умолчанию сортирует список в алфавитно-цифровом порядке по возрастанию:
Пример
Отсортируйте список по алфавиту:
thislist = ["orange", "mango", "kiwi",
"pineapple", "banana"]
thislist.sort()
print(thislist)
Пример
Отсортируйте список по цифрам:
thislist = [100, 50, 65, 82, 23]
thislist.sort()
print(thislist)
Сортировать по убыванию
Для сортировки по убыванию используйте аргумент ключевого слова reverse = True
:
Пример
Отсортируйте список по убыванию:
thislist = ["orange", "mango", "kiwi",
"pineapple", "banana"]
thislist.sort(reverse = True)
print(thislist)
Пример
Отсортируйте список по убыванию:
thislist = [100, 50, 65, 82, 23]
thislist.sort(reverse = True)
print(thislist)
Настроить функцию сортировки
Вы также можете настроить свою собственную функцию, используя аргумент ключевого слова .key =
function
Функция вернет число, которое будет использоваться для сортировки списка (сначала наименьшее число):
Пример
Отсортируйте список в зависимости от того, насколько число близко к 50:
def myfunc(n):
return abs(n - 50)
thislist = [100, 50, 65, 82, 23]
thislist.sort(key =
myfunc)
print(thislist)
Сортировка без учета регистра
По умолчанию sort()
метод чувствителен к регистру, в результате чего все заглавные буквы сортируются перед строчными:
Пример
Сортировка с учетом регистра может дать неожиданный результат:
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort()
print(thislist)
К счастью, мы можем использовать встроенные функции в качестве ключевых при сортировке списка.
Поэтому, если вам нужна функция сортировки без учета регистра, используйте str.lower в качестве ключевой функции:
Пример
Выполните сортировку списка без учета регистра:
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort(key
= str.lower)
print(thislist)
Обратный порядок
Что делать, если вы хотите изменить порядок списка, независимо от алфавита?
Метод reverse()
меняет текущий порядок сортировки элементов на противоположный.
Пример
Обратный порядок элементов списка:
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.reverse()
print(thislist)