欢迎访问宙启技术站
智能推送

如何在Python中使用filter函数过滤列表中的负数

发布时间:2023-06-25 18:35:12

在Python中,使用filter函数可以方便地过滤掉列表中的元素,其内置函数形式为:filter(function, iterable)。

其中function是用来判断是否接受某个元素的函数,iterable则是可以迭代的对象。

在本题中,我们可以使用lambda表达式来判断每个元素是否是负数,代码如下:

list1 = [1, -4, 5, -6, 3, -8, 2]

filtered_list = list(filter(lambda x: x >= 0, list1))

print(filtered_list)

运行结果为:[1, 5, 3, 2]

上述代码中,使用lambda表达式判断了每个元素是否大于等于0,filter函数通过调用这个lambda函数来过滤list1中的元素。最后,使用list函数将过滤后的结果转化为列表类型,并打印输出。

除了使用lambda表达式外,也可以定义一个函数来作为filter函数中的参数,代码如下:

def is_positive(x):
    if x >= 0:
        return True
    else:
        return False

list1 = [1, -4, 5, -6, 3, -8, 2]

filtered_list = list(filter(is_positive, list1))

print(filtered_list)

运行结果为:[1, 5, 3, 2]

在这里,定义了一个函数is_positive用来判断每个元素是否大于等于0,在filter函数中直接调用该函数即可过滤出符合条件的元素。

无论是使用lambda表达式还是自定义函数,都可以通过filter函数在Python中过滤出列表中的负数。