我试图从列表中删除所有大于 5 的元素,但由于某种原因代码不起作用。
foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
for i in foo:
if i > 5:
foo.remove(i)
print(foo)
如何解决?
我试图从列表中删除所有大于 5 的元素,但由于某种原因代码不起作用。
foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
for i in foo:
if i > 5:
foo.remove(i)
print(foo)
如何解决?
更容易创建过滤列表
这个问题已经在这里讨论过很多次了。从您正在迭代的列表中删除元素会中断迭代,它会“跳过”被删除元素之后的元素。一个简单的解决方案是遍历列表的副本:
但是通过过滤元素来形成一个新的列表更加pythonic。