list.sort() меняет исходный список и возвращает None; sorted() создаёт новый список из iterable. Чтобы не менять параметр теста, используйте sorted().
Какими методами можно отсортировать список в Python? Чем отличаются sort() и 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, а не отсортированный список.