我有一个这样的例子:
In [2]: l = list(range(10))
In [3]: l
Out[3]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In [4]: for i in range(len(l)):
...: l.append(1)
...: print("yes")
...:
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
在这种情况下,l 在循环过程中每次都会追加 'l',因此 len(l) 每次都会增加 1。
我认为这应该是一个无限循环。
结果证明我的预测是错误的,
如何能够直观地理解这种情况。
l是一个可变数组,它的长度在循环过程中会立即改变?
最佳答案
len(l)
在进入循环之前进行计算。
另一方面,for i in l
将导致无限循环。
关于python - 修改数组不会影响其在外循环中的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55457249/