这段简单代码出了什么问题?

时间:2015-05-16 07:00:00

标签: python python-3.x

def purify(lst):    
    for n in lst:
        if  n%2==1 :
            lst.remove(n)
    return lst

print (purify([2,3]))
input()

Python 3.4中的代码有什么问题;我已经将raw_input切换为输入?

它说语法无效。我在python 2.7中写了一个类似的,它工作得很好。我刚开始学习python而且我真的不知道如何让错误消息的持续时间超过闪存。

1 个答案:

答案 0 :(得分:1)

我会去刺它。它没有删除您期望的所有项目,对吗?

这是因为您在迭代时修改了列表。删除项目时,会将所有剩余项目向下移动。然后你去下一个项目。基本上,每次删除项目时,跳过下一个项目。

最直接的解决方案可能是构建一个包含您要保留的项目的新列表(或将切片分配回原始列表)。

struct