Будет выведен пустой список []. Срез допускает границы за пределами списка; индекс 5 находится после всех элементов, поэтому в выбранную часть ничего не попадает.
Определение вывода при обращении к срезу списка
Будет выведен пустой список []. Срез допускает границы за пределами списка; индекс 5 находится после всех элементов, поэтому в выбранную часть ничего не попадает.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Имеется фрагмент кода на Python, который выводит часть списка. Список letters содержит элементы ['a', 'b', 'c', 'd']. Требуется выяснить, какой результат будет напечатан при выполнении следующего кода.
Код:
letters = ['a', 'b', 'c', 'd']
print(letters[5:])
Варианты ответа:
- c
- b
- d
- произойдет ошибка
- []
- a
Ответ
Будет выведен пустой список []. Срез допускает границы за пределами списка; индекс 5 находится после всех элементов, поэтому в выбранную часть ничего не попадает.
Длина letters равна четырём, а допустимые индексы отдельных элементов — от 0 до 3. Но операция среза не равна обращению по индексу:
print(letters[5:]) # []
# letters[5] # IndexError
При положительном шаге границы среза ограничиваются длиной последовательности. Начало и конец фактически совпадают на конце списка, поэтому результат пуст. Исходный список не изменяется, а срез создаёт новый список.