我在Python中编写了一个函数,它将一个列表作为输入,包含所有整数。 我应该删除所有奇数,让偶数保留并返回列表。
这是我的功能:
def purify (lst):
for key in lst:
if key % 2:
lst.remove(key)
return lst
当我运行它时,这些是我得到的结果:(这是一些测试用例)
print purify([1,2,3,4,5,6,7,8,9])
结果:
1 3 五 7 9 [2,4,6,8]
另一个测试案例: 当我使用这一行时:
print purify([4,5,5,4,5,5])
结果:
4 五 4 五 [4,4,5,5]
我不确定发生了什么,如果我删除了“if”条件,那么就没有问题(像这样):
def purify (lst):
for key in lst:
print key
return lst
它打印列表中的所有值,不会跳过任何
我做错了吗?
答案 0 :(得分:0)
运算符%返回一个整数值而不是布尔值,因此当返回值为0时,它会跳过该语句。 你也正在修改你正在迭代的列表,不是很好......
试试这个:
def purify (lst):
retLst = []
for key in lst:
if key % 2 == 0:
lst.append(key)
return retLst
应该工作。