我正在写一个简单的函数来从列表中取出任何奇数,并返回一个只有偶数的列表.
def purify(numbers): for i in numbers: if i%2!=0: numbers.remove(i) return numbers print purify([4,5,5,4])
当在上面应用时
它返回:[4,5,4]为什么第二个5被删除,因为它也证明了if?
我不太关注问题的不同方法,而是更多地了解为什么会发生这种情况.
谢谢,对不起,如果这是愚蠢的......乔
删除项目时,后面的项目会向左移动一个位置.这导致循环跳过一些项目.
顺便说一下,编写代码的更惯用的方法是
numbers = [num for num in numbers if num % 2 == 0]