Какими методами можно отсортировать список в Python? Чем отличаются sort() и sorted()? Какой метод использовать, если список передан как параметр в тест и нужно не изменять исходный список?

list.sort() меняет исходный список и возвращает None; sorted() создаёт новый список из iterable. Чтобы не менять параметр теста, используйте sorted().

Короткий ответ

Что ответить на собеседовании

list.sort() меняет исходный список и возвращает None; sorted() создаёт новый список из iterable. Чтобы не менять параметр теста, используйте sorted().

Подробный разбор

Ответ с пояснениями

list.sort() меняет исходный список и возвращает None; sorted() создаёт новый список из iterable. Чтобы не менять параметр теста, используйте sorted().

Оба способа поддерживают key и reverse и сохраняют относительный порядок элементов с одинаковым ключом. Например:

original = [3, 1, 2]
ordered = sorted(original)
assert original == [3, 1, 2]
assert ordered == [1, 2, 3]

Это новая внешняя коллекция, а не глубокая копия её элементов. Если key или последующая обработка изменяет вложенные объекты, исходные данные всё равно могут измениться. Присваивание result = original.sort() даст None, а не отсортированный список.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее