Что происходит, когда мы получаем отрицательное значение в python для l oop? - PullRequest
0 голосов
/ 18 апреля 2020
x = 10
l = [1]
for i in range(x):
    # Modified v
    print("Row", i + 1, l)
    newlist = []
    newlist.append(l[0])
    for i in range(len(l) - 1):
        newlist.append(l[i] + l[i+1])
    newlist.append(l[-1])
    l = newlist

Я не понимаю, что происходит, когда индекс становится отрицательным

1 Ответ

1 голос
/ 18 апреля 2020

Когда вы даете отрицательный индекс, возвращается значение по этому индексу. Для списка a = [1,2,3]

мы можем сказать

value 1 is at index 0
value 2 is at index 1
value 3 is at index 2

или

value 3 is at index -1
value 2 is at index -2
value 1 is at index -3

Если вы go вне этого диапазона индексов, которые От минус 3 до плюс 3 вы получите

IndexError: list index out of range

Для вашего кода секунда для блока никогда не выполняется, и, следовательно, вы не видите ошибку индекса.

x = 10
l = [1]
for i in range(x):
  print("Row", i + 1, l)

newlist = []

newlist.append(l[0])


# Length l is 0,so below code inside for is never executed as range is empty
for i in range(len(l) - 1):
    newlist.append(l[i] + l[i+1])
    newlist.append(l[-1])
    l = newlist
...