Статья Автор: Деникина Н.В., Деникин А.В.

Миссия Пиксель. Инструменты сортировки

Шаг 3: Инструменты сортировки
Мини-справка
Чтобы восстановить рейтинги и упорядочить данные, тебе понадобятся приёмы сортировки. Это твой арсенал для следующих миссий.
sort() vs sorted()
 
sort() — меняет список
a.sort()
Изменяет сам список, ничего не возвращает
sorted() — создаёт новый
b = sorted(a)
Исходный список не трогает
a = [50, 10, 40, 20, 30]

# sort() — сортирует НА МЕСТЕ
a.sort()               # a = [10, 20, 30, 40, 50]
a.sort(reverse=True)   # a = [50, 40, 30, 20, 10]

# sorted() — возвращает НОВЫЙ список
b = [50, 10, 30]
c = sorted(b)   # c = [10, 30, 50], b = [50, 10, 30]
Топ-N и срезы
 
a = [78, 92, 65, 88, 95]
a.sort()                # [65, 78, 88, 92, 95]

top3 = a[-3:]           # [88, 92, 95] — три наибольших
worst2 = a[:2]          # [65, 78] — два наименьших
Сортировка словаря
 

По ключам — просто sorted(d):

d = {"gamma": 150, "alpha": 100, "beta": 200}

for key in sorted(d):
    print(key, d[key])
# alpha 100
# beta 200
# gamma 150

По значениямsorted(d, key=d.get):

d = {"gamma": 150, "alpha": 100, "beta": 200}

# По возрастанию значений:
for key in sorted(d, key=d.get):
    print(key, d[key])
# alpha 100  /  gamma 150  /  beta 200

# По убыванию:
for key in sorted(d, key=d.get, reverse=True):
    print(key, d[key])
# beta 200  /  gamma 150  /  alpha 100
Шпаргалка
 
Выражение Что делает
a.sort() Сортирует список a на месте по возрастанию
a.sort(reverse=True) Сортирует a по убыванию
sorted(a) Новый отсортированный список
sorted(d) Ключи словаря по алфавиту
sorted(d, key=d.get) Ключи словаря по значениям
a[-3:] Последние 3 элемента (топ-3)
Печать