Когда ты берёшь срез списка за его последний индекс в Python, операция возвращает пустой список вместо того, чтобы бросить ошибку.
thelist = ['a', 'b']
print(thelist[3:])
Результат: []
thelist[3:]) возвращает пустой списокМеханизм срезов в Python снисходительный по дизайну. Когда ты берёшь срез списка, Python:
| Операция | Результат | Ошибка? |
|---|---|---|
thelist[3:] | [] | Нет |
thelist[3] | N/A | Да (IndexError) |
Прямое обращение по индексу (одно число) бросит IndexError, если индекс выходит за границы, но операции срезов обрабатывают выход за границы мягко, возвращая пустой список или частичный результат.
Такое поведение делает срезы списков удобными для итерации по диапазонам, которые могут превышать длину списка, избавляя тебя от необходимости проверять границы во многих случаях.
Когда ты срезаешь список с индексом вне границ, как mylist[10:], Python выбрасывает IndexError, чтобы предупредить тебя об ошибке.
Новый — ещё не проверен сообществом
Вы