在列表上循环,并在比较元素后删除它们



我试图迭代一个数字列表,并删除低于我用来比较的数字的值。

我的问题是,有一个数字低于我使用的值,但它不会被删除。

我正在使用列表的remove()功能,但我不知道为什么它没有被删除

这是我的代码:

def remove_lower_numbers(array_numbers, bigger_number):
for elem in array_numbers:
if elem <= bigger_number:
array_numbers.remove(elem)
print(array_numbers)

如果我使用这样的列表理解,它会起作用:

array_numbers = [x for x in array_numbers if x >= bigger_number]

但我想按照我最初提到的方式来学习

我这样调用函数:

cards_array = [3, 2, 7]
remove_lower_numbers(cards_array, 8)

但功能打印:

[2]

并且2低于8,则应当返回CCD_ 2或空列表。

使用filter,它只为lambda函数保留返回True的值:

list(filter(lambda x: x > 3, [1, 2, 3, 4, 5, 2, 3]))

输出:

[4, 5]

最新更新