В Python Documentation говорится, чтоКак повысить индексный индекс, когда индексы среза находятся за пределами допустимого диапазона?
ломтик индексы молчаливо укороченная падать в допустимого диапазона
и для этого нет IndexErrors
воскрес, когда нарезка списка, независимо какие start
или stop
параметров используются:
>>> egg = [1, "foo", list()]
>>> egg[5:10]
[]
Поскольку список egg
не содержит каких-либо индексов больше чем 2
, egg[5]
или egg[10]
вызов будет поднимать IndexError
:
>> egg[5]
Traceback (most recent call last):
IndexError: list index out of range
Вопрос теперь, как мы можем поднять IndexError
, когда оба дали индексы среза находятся за пределами допустимого диапазона?
Почему нет? Потому что пустой результат среза по-прежнему является действительным объектом. Если вы хотите поднять исключения, проверьте исходные и конечные индексы вручную или явно проверьте «len (egg)» на ваши границы. –
@MartijnPieters: Спасибо за ваш ответ! Я не уверен, что это дубликат, потому что я спрашиваю о «Как поднять IndexError, когда вырезаете последовательность», а не «* Почему индекс резки за пределами диапазона работает *». Но поправьте меня, если я ошибаюсь :) – elegent
Вы задали ** два ** вопроса, делая свой пост слишком широким. Я обманул вас к предыдущему вопросу, который отвечает первым, и предоставил вам варианты ответа на второй. –