我练习用 Python 编写一个函数,该函数接受一个包含所有整数的列表作为输入。
我应该删除所有奇数并保留偶数并返回列表。
这是我的功能:
def purify (lst):
for key in lst:
if key % 2:
lst.remove(key)
return lst
当我运行它时,这些是我得到的结果:(这里是一些测试用例)
打印净化([1,2,3,4,5,6,7,8,9])
结果 :
1
3
5
7
9
[2,4,6,8]
另一个测试用例:
当我使用这条线运行时:
打印净化 ([4,5,5,4,5,5])
结果 :
4
5
4
5
[4,4,5,5]
我不确定发生了什么,如果我删除“if”条件,那么就没有问题(像这样):
def purify (lst):
for key in lst:
print key
return lst
它打印列表中的所有值并且不跳过任何值
难道我做错了什么?
运算符 % 返回一个整数值而不是布尔值,因此当返回值为 0 时,它会跳过该语句。
另外,您正在修改正在迭代的列表,这不好......
尝试这个:
def purify (lst):
retLst = []
for key in lst:
if key % 2 == 0:
lst.append(key)
return retLst
应该管用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)