关于 python for 循环

问题描述

在那里的 for 循环中,当 I(for 循环索引)到达索引 4 时,它执行从第 11 行到第 13 行的代码,并将索引变量递减一个单位。所以现在 I 的值是 3,当 for 循环进行下一次迭代时,I 的值应该是 4,但它为 I 分配了 5。

l = [3,5,2,4]
l.append(7)
print(l)
l.extend([6,8,9,11,13])
print(l)
for i in range(0,len(l),1):
    if len(l)<i:
         break
    if l[i]>=7:
        del(l[i])
        i=i-1
print(l)

Python 导师:

enter image description here

解决方法

对于您的用例,最好使用 while 循环,它允许您更改索引变量的值。也许以下内容就足以满足您的需求:

l = [3,5,2,4]
l.append(7)
print(l)
l.extend([6,8,9,11,13])
print(l)
i = 0
while i in range(0,len(l)):
    if l[i]>=7:
        del(l[i])
        i=i-1
    i+=1
print(l)