遍历列表并在比较后删除元素

时间:2018-11-05 23:13:41

标签: python python-3.x

我试图遍历一个数字列表,并删除比我用来比较的数字小的值。

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

我正在使用列表的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或空白列表。

1 个答案:

答案 0 :(得分:1)

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

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

输出:

[4, 5]