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

Pythonfilter函数的应用及示例

发布时间:2023-06-24 13:00:35

Python 中的 filter() 函数是内置函数之一,用于过滤列表中的元素,返回一个新的列表。它接受两个参数:一个函数和一个序列。在每个元素成功测试函数之后,filter() 函数返回一个包含所有成功元素的新列表。

下面是 filter() 函数的基本语法:

new_list = filter(function, sequence)

其中,function 是一个自定义函数,用于特定的项目测试序列,sequence 是要进行元素迭代的序列。

作为内置函数之一,filter() 函数是非常强大的函数,它能够简单地帮助我们筛选列表中的元素。在下面的几个示例中,我们将看到如何使用 Python 的 filter() 函数来过滤列表中的元素。

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

在这个例子中,我们使用 filter() 函数从给定的列表中找出所有偶数。

#筛选偶数
numbers = [2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)

输出:

[2, 4, 6, 8, 10]

在这个示例中,我们首先将列表 numbers 定义为一个包含整数元素的列表,然后使用 lambda 函数来测试列表中的元素是否为偶数。最后,我们使用 list() 函数将一个迭代器对象转换为列表,使得我们能够查看过滤之后的偶数列表。

示例2:使用 filter() 函数来筛选单词长度大于等于5个字符的元素

在这个示例中,我们使用 filter() 函数以及自定义函数来筛选一个字符串列表中字符数大于等于5的单词。

# 筛选长度 >= 5 的字符串
words = ["hello", "hi", "world", "welcome", "python", "program"]
new_words = list(filter(lambda x: len(x) >= 5, words))
print(new_words)

输出:

['hello', 'world', 'welcome', 'python', 'program']

在这个示例中,我们使用了 lambda 函数测试列表中的每个字符串的长度是否大于等于5。filter() 函数最终返回一个迭代器,我们使用 list() 函数将其转换为列表。

示例3:使用 filter() 函数筛选列表中小于等于20的元素

在这个示例中,我们使用 filter() 函数以及自定义函数来筛选一个整数列表中小于等于20的元素。

#筛选小于等于20的元素
numbers = [10, 15, 20, 25, 30, 35, 40]
new_numbers = list(filter(lambda x: x <= 20, numbers))
print(new_numbers)

输出:

[10, 15, 20]

在这个示例中,我们使用了 lambda 函数测试列表中的每个元素是否小于等于20。filter() 函数最终返回一个迭代器,我们使用 list() 函数将其转换为列表。

综上所述,我们可以看到 Python filter() 函数在过滤列表元素方面是非常强大的。通过使用 filter() 函数以及自定义函数,我们可以轻松地处理列表。