Обратный порядок элементов списка на месте

Вызовите 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] создаёт новый объект и потому не соответствует требованию.

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

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

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

Подробнее