a=[8,24,3,20,1,17]
r=[]
for i in a:
for j in a:
s=a[i]-a[j]
r.append(s)
print r
Когда я запускаю эту программу Почему ошибка индекса за пределами диапазона по этому вопросу?Указание погрешности вне диапазона при сравнении значений
'for i in a iterates через значения в' a'. Поэтому в первой итерации 'i == 8' и' a [8] 'пытается получить доступ к элементу из диапазона списка. – khelwood
'for in 'перебирает элементы, а не индексы. – Ryan
'for i in a' перебирает каждый элемент в a. 'for j in a 'снова перебирает элементы в a. Поэтому для вашего кода вы хотели бы изменить 's = a [i] -a [j]' на 's = i-j', так как' i' и 'j' уже являются значениями, которые вы пытаетесь захватить. – Michael