我试图遍历一个数字列表,并删除比我用来比较的数字小的值。
我的问题是,有一个数字低于我使用的值,但没有被删除。
我正在使用列表的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,则应返回None
或空白列表。
答案 0 :(得分:1)
使用filter
,它仅保留为lambda函数返回True
的值:
list(filter(lambda x: x > 3, [1, 2, 3, 4, 5, 2, 3]))
[4, 5]