Индекс списка вне диапазона означает, что i
больше len(l) - 1
(поскольку Python и многие другие языки программирования используют индексирование, начинающееся с 0 вместо 1, последний элемент в списке имеет индекс len(l) - 1
не только len(l)
.
Попробуйте отладку так:
try:
B = l.append((l[i] + A + B))
except IndexError:
print "Appending from index", i, "to list l of length:", len(l)
raise
Это сообщит вам значение i
и длину l
в случае сбоя добавления, чтобы вы могли найти проблему.
Это в цикле? Это может помочь показать нам код цикла. Может случиться так, что даже если вы увеличиваете длину l
, добавляя к ней, вы увеличиваете i
еще быстрее, так что в конечном итоге она становится больше, чем len(l) - 1
.