我已经编写了一个旨在删除列表中所有奇数的函数。
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:列表索引超出范围"。为什么?代码有什么问题?
答案 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)]