Python在循环体中改变循环范围

使用for循环的方式会出现索引溢出的情况

list1 = [i for i in range(0, 10)]
lenth = len(list1) 
for j in range(0, lenth):
    if list1[j] % 2 == 0:
        del list1[j]

报错

Traceback (most recent call last):
  File "F:/05 Python/pythoncode/paper_experience/mytest.py", line 6, in 
    if list1[j] % 2 == 0:
IndexError: list index out of range

 

解决方法:

 

 

list1 = [i for i in range(0, 10)]
print(list1)
j=0
while j< len(list1):
    if list1[j] % 2 == 0:
        del list1[j]
    j+=1

print(list1)

while循环中执行循环体之前会执行一次len方法

 

你可能感兴趣的:(开发遇到的问题,Python,循环体,遍历)