В Python есть метод sort для списков.
In [4]:
a = [5, 3, -2, 9, 1]
# Метод sort меняет существующий список
a.sort()
print(a)
Для сортировки в обратном порядке можно указать параметр reverse.
In [3]:
a = [5, 3, -2, 9, 1]
a.sort(reverse=True)
print(a)
Сортировка по ключу позволяет отсортировать список не по значению самого элемента, а по чему-то другому.
In [15]:
# Обычно строки сортируются в алфавитном порядке
a = ["bee", "all", "accessibility", "zen", "treasure"]
a.sort()
print(a)
In [16]:
# А используя сортировку по ключу можно сортировать, например, по длине
a = ["bee", "all", "accessibility", "zen", "treasure"]
a.sort(key=len)
print(a)
В качестве параметра key можно указывать не только встроенные функции, но и самостоятельно определённые. Такая функция должна принимать один аргумент, элемент списка, и возращать значение, по которому надо сортировать.
In [13]:
# Сортируем по остатку от деления на 10
def mod(x):
return x % 10
a = [1, 15, 143, 8, 0, 5, 17, 48]
a.sort(key=mod)
print(a)
In [18]:
# Обычно списки сортируются сначала по первому элементу, потом по второму и так далее
a = [[4, 3], [1, 5], [2, 15], [1, 6], [2, 9], [4, 1]]
a.sort()
print(a)
# А так можно отсортировать сначала по первому по возрастанию, а при равенсте — по втором
def my_key(x):
return x[0], -x[1]
a = [[4, 3], [1, 5], [2, 15], [1, 6], [2, 9], [4, 1]]
a.sort(key=my_key)
print(a)