Вызовите data.reverse() и затем верните data. Метод разворачивает существующий список на месте и сам возвращает None, поэтому return data.reverse() не подходит.
Обратный порядок элементов списка на месте
Вызовите data.reverse() и затем верните data. Метод разворачивает существующий список на месте и сам возвращает None, поэтому return data.reverse() не подходит.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Необходимо написать функцию, меняющую порядок элементов переданного списка на обратный, при этом использовать сам список и вернуть его же, без создания нового объекта.
def reverse_list(data: list) -> list:
# TODO: Реализовать разворот списка in-place
…
Ответ
Вызовите data.reverse() и затем верните data. Метод разворачивает существующий список на месте и сам возвращает None, поэтому return data.reverse() не подходит.
Реализация:
def reverse_list(data: list) -> list:
data.reverse()
return data
Для [1, 2, 3] содержимое станет [3, 2, 1], а результат is data будет True. Пустой и одноэлементный списки остаются без изменений. Альтернатива без встроенного reverse — менять элементы двумя индексами от краёв к центру. Срез data[::-1] создаёт новый объект и потому не соответствует требованию.