Python中的filter函数如何过滤掉一个列表中的所有负数?
发布时间:2023-06-21 16:30:06
在Python中,filter函数是同时使用于列表和函数的内置函数之一。该函数通过提供一个函数和一个序列来过滤出符合条件的元素,从而产生一个新的序列。其中,函数的作用是判断序列中每个元素是否符合过滤的条件。
在本案例中,我们需要过滤掉一个列表中的所有负数。因此,我们需要定义一个用于判断负数的函数,然后将这个函数作为参数传递给filter函数。接下来,我们将具体介绍如何使用filter函数来实现这个过滤操作。
1. 定义用于判断负数的函数
我们需要声明一个函数,这个函数可以接受任意一个数字类型的参数,并将其转换为布尔型返回。如果参数是负数,则返回False;如果参数是0或正数,则返回True。以下是定义该函数的示例代码:
def is_positive(num):
return num >= 0
2. 定义待过滤的列表
接下来,我们需要定义一个待过滤的列表。以下是一个包含负数的示例列表:
original_list = [-3, 4, -1, 0, 7, -6, 2]
3. 使用filter函数进行过滤操作
现在,我们可以将定义的is_positive函数作为参数传递给filter函数,以过滤掉original_list中的所有负数。以下是使用filter函数的示例代码:
positive_list = list(filter(is_positive, original_list))
此时,将得到positive_list中只包含原始列表中的所有非负数项。如果打印该列表,将看到以下结果:
[4, 0, 7, 2]
通过这种方法,我们可以使用Python中的filter函数来过滤掉一个列表中的所有负数。请注意,如果过滤函数返回True,则原始列表中对应的元素将包含在结果中,而如果返回False,则将被过滤掉。
