for ... in ... 循环(Python)跳过列表中的一些值[重复]

2024-02-06

我练习用 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(使用前将#替换为@)

for ... in ... 循环(Python)跳过列表中的一些值[重复] 的相关文章

随机推荐