【发布时间】:2020-03-29 20:49:16
【问题描述】:
这是我的 Python 程序:
def highest_even(li):
for num in li:
if num % 2 != 0:
li.remove(num)
return li
print(highest_even([10,2,3,4,5,80,15,99]))
输出是:
[10, 2, 4, 80, 99]
我想知道为什么99 没有被删除。
谢谢。
【问题讨论】:
-
不要修改你迭代的列表
-
不要同时从列表中迭代和删除
-
您正在同时删除和迭代,这可能很棘手,不推荐。例如,当您删除
5时,您认为列表会发生什么? -
删除 15 时被跳过
-
一个很好的现有答案stackoverflow.com/a/36268815/7746992。
标签: python