从列表中删除奇数的脚本(Python)

时间:2016-09-24 10:30:00

标签: python list

我已经编写了一个旨在删除列表中所有奇数的函数。

def purify(l):
    for e in range(len(l)):
        if l[e] % 2 != 0:
            del l[e]
    return l

v = [4, 5, 5, 6]
print purify(v)

但是当它开始执行列表v时,它不会在第二个周期工作并产生错误:" IndexError:列表索引超出范围"。为什么?代码有什么问题?

2 个答案:

答案 0 :(得分:1)

您可以将列表理解用作:

lst = [4, 5, 5, 6]

lst_even = [i for i in lst if not i%2]

print v_purified

答案 1 :(得分:0)

最简单的方法就是通过列表理解来实现你想要的东西:

def purify(l):
    return [e for e in l if not (e % 2)]