首页 > 解决方案 > 在 Python 的循环中使用 .remove

问题描述

我尝试了以下代码:

arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]

for x in arr:
  if x > 3:
    arr.remove(x)

print(arr)

它提供以下输出:

[1, 2, 3, 5, 7, 9]

相反,我认为它会从数组中删除每个大于 3 的元素。这是为什么呢?我怎样才能让它删除每个大于一定数量的元素?

标签: pythonpython-3.x

解决方案


修改您正在迭代的列表经常会产生意想不到的结果。更好的选择是创建一个新列表:

arr = [x for x in arr if x <= 3]

推荐阅读