← Все вопросы
Как отсортировать список — в чём разница sort и sorted, как по убыванию?
19
Видел и lst.sort(), и sorted(lst). Чем отличаются? И как отсортировать в обратном порядке?
3 ответа
31
✓ Принятый ответ — помог автору
Разница в том, что они делают с исходным списком:
lst.sort()— сортирует на месте, меняет сам список, возвращаетNone.sorted(lst)— возвращает новый отсортированный список, оригинал не трогает. Работает с любым итерируемым (строки, кортежи, ключи словаря).
a = [3, 1, 2]
b = sorted(a) # b = [1, 2, 3], a без изменений
a.sort() # теперь a = [1, 2, 3]
sorted(a, reverse=True) # [3, 2, 1] — по убыванию
sorted(words, key=len) # по длине строк
Частая ошибка новичков: a = a.sort() — после этого a станет None, потому что .sort() ничего не возвращает. Для присваивания нужен sorted().
Александра Виноградова вот про a = a.sort() = None прям моя боль была 😄 · 16 месяцев назад
9
По убыванию: добавь reverse=True — работает и в sort(), и в sorted().
-4
sort() возвращает отсортированный список, можно сразу присваивать
Boris Britva неа, sort() возвращает None и сортирует на месте. Новый список даёт sorted() · 16 месяцев назад
Ваш ответ
Войдите, чтобы ответить на вопрос.