此问题已经在这里有了答案:
我创建了一个1-10的列表。我想删除所有大于某个数字的数字,在这种情况下,请说4。我在下面编写了代码,但无法获得想要的结果。
number_range = list(range(1,11))
for i in number_range:
if i > 4:
number_range.remove(i)
我得到的结果
[1、2、3、4、6、8、10]
之所以发生这种情况,是因为您在循环浏览列表时正在修改列表。解决此问题的一种快速方法是改为遍历列表的副本:
number_range = list(range(1,11))
for i in number_range[:]:
if i > 4:
number_range.remove(i)
但是this duplicate question的答案中还有其他更有效的选择。