Будут напечатаны ['c', 'd'], затем ['e'], затем []. Начальная граница среза включается, конечная исключается; выход за длину при срезе не вызывает IndexError.
Какой вывод получит программа, использующая различные срезы списка?
Будут напечатаны ['c', 'd'], затем ['e'], затем []. Начальная граница среза включается, конечная исключается; выход за длину при срезе не вызывает IndexError.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Определите, что появится в стандартном выводе после выполнения следующего фрагмента Python‑кода, где демонстрируются срезы списка с разными диапазонами индексов.
data = ['a', 'b', 'c', 'd', 'e']
print(data[2:4])
print(data[4:])
print(data[10:])
Ответ
Будут напечатаны ['c', 'd'], затем ['e'], затем []. Начальная граница среза включается, конечная исключается; выход за длину при срезе не вызывает IndexError.
Точный вывод:
['c', 'd']
['e']
[]
data[2:4] берёт элементы с индексами 2 и 3. data[4:] берёт всё от индекса 4 до конца. Для data[10:] начало оказывается за последним элементом, поэтому возвращается пустой список. Каждый срез создаёт новый список; исходный data не меняется. Это отличается от data[10], где возникла бы ошибка индекса.