Ключевое отличие в том, где хранится отсортированный результат:
list.sort() модифицирует исходный список на месте и возвращает Nonesorted() оставляет исходный список неизменным и возвращает новый отсортированный списокlist.sort() когда ты хочешь сэкономить память и тебе не нужно сохранять исходный порядокsorted() когда тебе нужно сохранить исходный список в неизменном виде, или когда ты работаешь с любым итерируемым объектом (не только со списками)Оба принимают одни и те же два необязательных параметра:
key — функция, применяемая к каждому элементу перед сравнениемreverse — булево значение (True для убывающего порядка, False по умолчанию)numbers = [3, 1, 4, 1, 5]
# sorted() — возвращает новый список, исходный не изменен
result = sorted(numbers, key=lambda x: -x, reverse=False)
print(numbers) # [3, 1, 4, 1, 5] — не изменен
print(result) # [5, 4, 3, 1, 1]
# list.sort() — модифицирует на месте, возвращает None
numbers.sort(reverse=True)
print(numbers) # [5, 4, 3, 1, 1] — изменен
Предпочитай sorted() за гибкость и надёжность, особенно когда исходные данные должны остаться нетронутыми. Используй list.sort() для экономии памяти, когда модификация на месте допустима.
Функция sorted() может принимать любой итерируемый объект на входе, а list.sort() можно вызывать только на объектах списка.
Новый — ещё не проверен сообществом
Вы