2012-04-27 3 views
0

Я следующий код питона:Почему следующий код не дает «IndexError»?

a = [0,1,2,3,4,5] 
del(a[2:7]) 

не должны это дать "IndexError"? Если нет, то почему?

+1

«Выраженные индексы среза обрабатываются изящно: слишком большой индекс заменяется размером строки, верхняя граница меньше нижней границы возвращает пустую строку». от http://docs.python.org/tutorial/introduction.html – Ord

ответ

2

Это удаляет фрагмент списка от 2 до 7. Сегменты списка не выбрасывают ошибки индекса, а если они выходят за пределы списка, они возвращают весь остаток списка.

>>> a = list(range(10)) 
>>> a 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
>>> a [5:20] 
[5, 6, 7, 8, 9] 
Смежные вопросы