您的位置 首页 教程

Python3 filter() 函数

Python3中的filter()函数是一个内置函数,它用于过滤一个序列中的元素,根据指定的函数条件来决定是否保留该元素。

filter()函数接受两个参数,第一个参数是一个函数,用来决定保留哪些元素,函数返回True表示保留,返回False表示过滤掉。第二个参数是一个序列,可以是列表、元组等。

filter()函数通过逐个遍历序列中的元素,并将其传递给函数进行判断。然后将符合条件的元素组成一个新的迭代器返回。

使用filter()函数可以方便地筛选出需要的元素,节省了编写循环和判断语句的时间和代码量。

例如,可以用filter()函数从一个列表中过滤出所有的奇数,将其作为一个新的迭代器返回。

Python3 filter() 函数

Python3 filter() 函数

Python中的filter()函数是一种内置函数,用于过滤序列中的元素。它以一个函数和一个可迭代的序列作为参数,并返回一个由使函数返回True的元素组成的迭代器。

filter()函数的语法如下:

“`
filter(function, iterable)
“`

其中function是一个返回布尔值的函数,可以是一个lambda函数或者一个普通函数;iterable是一个可迭代的序列,可以是列表、元组、集合等。

示例1:使用filter()函数过滤列表中的偶数

假设我们有一个包含数字的列表,我们想要过滤出其中的偶数。我们可以使用filter()函数来实现这个功能:

“`python
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_nums = list(filter(lambda x: x % 2 == 0, nums))
print(even_nums)
“`

运行上面的代码,输出结果为:

“`
[2, 4, 6, 8, 10]
“`

在这个例子中,我们使用了一个lambda函数来判断一个数字是否是偶数,然后将该lambda函数和数字列表作为参数传递给filter()函数。filter()函数返回一个迭代器,我们使用list()函数将其转换为列表。

示例2:使用filter()函数过滤不满足条件的字符串

除了过滤数字外,filter()函数也可以用于过滤字符串。例如,我们想要找出一个列表中长度大于3的字符串:

“`python
words = [‘apple’, ‘banana’, ‘orange’, ‘kiwi’, ‘pear’]
long_words = list(filter(lambda x: len(x) > 3, words))
print(long_words)
“`

运行上面的代码,输出结果为:

“`
[‘apple’, ‘banana’, ‘orange’, ‘pear’]
“`

在这个例子中,我们通过lambda函数判断字符串的长度是否大于3来过滤列表中的元素。

注意事项

需要注意的是,filter()函数返回的是一个迭代器,而不是一个列表。如果需要获取列表,我们可以使用list()函数将迭代器转换为列表。

此外,filter()函数不会修改原始的序列,而是返回一个新的迭代器。因此,如果需要使用过滤后的结果,我们需要将其存储在一个新的变量中。

总之,filter()函数是一个非常方便的工具,可以帮助我们快速地过滤序列中的元素。无论是过滤数字还是字符串,它都能起到很好的作用。

关于作者: 品牌百科

热门文章