问题是您要在迭代列表时修改列表,因此所有偶数都将被跳过。因此,
if条件总是
False。
该
for循环跟踪指数的,所以当你在索引中删除的项目
i在,下一个项目
i+1个位置转变为当前指数(
i),因此在接下来的迭代中,你居然会挑
i+2个项。
for n in numbers[:]: #iterate over a shallow copy of list if n % results[-1] == 0: print "If statement", numbers numbers.remove(n) else: print "Else statement", numbers numbers.remove(n)
例:
>>> lis = range(3,15)>>> for x in lis:... print x... lis.remove(x)... 35791113


![if循环中的语句不起作用[重复] if循环中的语句不起作用[重复]](http://www.mshxw.com/aiimages/31/647343.png)
