Найти - Пользователи
Полная версия: Почему не работает цикл?
Начало » Python для новичков » Почему не работает цикл?
1
Antigr
 import numpy as np
a=np.zeros(1000)
b=list(a)
b.append(1)
c=[]
for i in range(len(b)):
    if b[i]==0:
        del b[i]
        #print(i)
    c=b
смысл - удалить все нули оставить массив
c =[1]
выдает ошибку
File “Eaero/python/circle.py”, line 7, in <module>
if b==0:
IndexError: list index out of range
PEHDOM
Antigr это потому что
 if b[i]==0:
        del b[i]
плохая идея, удалять элементы из спика “на ходу”. Удаляя элемент, список становиться короче, но i то у вас итерируеться по len(b) на момент когда список еще имел первоначальную длинну, вот в один прекрасный момент i становиться больше длинны списка и вылазит index out of range.
создайте новый масив, в котороый добавляйте нужные значения, а старый список не трогайте.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB