【发布时间】:2013-08-15 12:54:36
【问题描述】:
我正在编写一个简单的函数来从列表中取出任何奇数并返回仅包含偶数的列表。
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 的合理性?
我较少寻找解决问题的不同方法,而是更多地了解为什么会发生这种情况。
感谢和抱歉,如果这是愚蠢的 q.. 乔
【问题讨论】:
-
不幸的是,我知道这是重复的。
-
purify中的代码要缩进,否则不起作用。 -
如果列表很长,您可以在扫描前用 numbers = list(set(numbers)) 去除重复项。在此示例中,它不值得,但对于大数据集,最好预先消除冗余检查
标签: python