Почему цикл пытается получить доступ к элементу вне диапазона списка? - PullRequest
0 голосов
/ 29 января 2019

При переборе по списку я получаю ключевую ошибку, я не понимаю, почему, поскольку я перебираю от 0 до диапазона (len (список))

Я пытался перебрать от 0 до len (list), но len возвращает целое число, поэтому я не могу перебрать его.Затем я попытался выполнить итерацию от 0 до диапазона (len (список)), потому что «range» возвращает список целых чисел от 0 до len (список).Однако я получаю ошибку ключа

for index in range(len(objectName.listName)):
    print("\n\t listName[%i]: %s" % (index, objectName.listName[index]))

Когда я выполняю приведенный выше код, все элементы в списке печатаются, но затем итератор пытается получить доступ к элементу, который находится за пределами диапазона, и я получаю следующую ошибку:

Traceback (последний вызов был последним): файл "filename.py", строка 276, в печати ("\ n \ t listName [% i]:% s"% (index, objectName.listName [index])) KeyError: 10

Я ожидал увидеть каждый элемент распечатанным.

Примечание: всего 10 элементов (индексировано 0 -> 9), но итератор пытается получить доступ к ключу: 10" .

1 Ответ

0 голосов
/ 29 января 2019
for index in range(len(objectName.listName)-1):
    print("\n\t listName[%i]: %s" % (index, objectName.listName[index]))

Поскольку len (objectName.listName) возвращает 11
range (11) = 0,1,2 ... 10

...