【发布时间】:2016-11-22 13:36:46
【问题描述】:
我试图执行一个 for 循环,例如:
a = [1,2,3,4,5,6,7]
for i in range(0, len(a), 1):
if a[i] == 4:
a.remove(a[i])
我最终得到了一个index error,因为列表的length 变短了,但迭代器i 没有意识到。
所以,我的问题是,如何编码这样的东西? i 的range 是否可以根据当前数组条件在循环的每次迭代中更新?
【问题讨论】:
-
如果长度不断变化,循环将非常不可预测。它会停在哪里?
-
您为什么要这样做?如果在
range函数中动态计算长度,您将陷入无限循环。 -
即使你的这个循环确实有效,它也会永远运行。
-
@syam 这是一个糟糕的设计模式。您的数据结构应保持不变,以便对代码进行正确性检查。
-
我建议编辑你的问题,告诉我们你想要的代码行为。
标签: python arrays python-2.7 python-3.x for-loop