快速入门Python中的filter()函数
Python中的filter()函数是一种非常有用的操作函数,可以帮助我们快速地筛选出一个序列中符合我们需要的元素。在这篇文章中,我们将会对Python中的filter()函数进行详细的介绍,并举例说明如何使用。
什么是filter()函数?
filter()函数是Python内置函数之一,它的作用是从一个序列中过滤出符合条件的元素,返回一个由符合条件元素构成的新序列。filter()函数的基本语法如下:
filter(function, iterable)
其中,function是一个函数,用于判断每个元素是否符合条件。iterable是一个可迭代的序列,我们希望从中筛选出符合条件的元素。filter()函数会遍历序列中的每个元素,将元素作为参数传递给function函数,如果符合条件,就保留该元素,否则丢弃。
除了传递一个函数作为 个参数,我们还可以使用lambda表达式来定义一个匿名函数,例如:
filter(lambda x: x % 2 == 0, range(10))
这行代码就是筛选出0到9中所有的偶数。
filter()函数的返回值是一个迭代器,我们需要将它转换成我们需要的类型,例如列表、元组等。
filter()函数的应用场景
filter()函数的应用场景非常广泛,一般我们在需要筛选出符合条件的元素时,都会使用filter()函数。
下面是一些示例:
1. 筛选出一个列表中所有的偶数。
# 使用普通函数
def is_even(n):
return n % 2 == 0
l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = list(filter(is_even, l))
print(result)
# 使用lambda表达式
l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = list(filter(lambda x: x % 2 == 0, l))
print(result)
2. 筛选出一个字符串列表中长度大于等于5的字符串。
# 使用普通函数
def is_long_enough(s):
return len(s) >= 5
l = ["hello", "world", "python", "code", "computer"]
result = list(filter(is_long_enough, l))
print(result)
# 使用lambda表达式
l = ["hello", "world", "python", "code", "computer"]
result = list(filter(lambda x: len(x) >= 5, l))
print(result)
3. 筛选出一组数字中大于10且小于50的数字。
# 使用普通函数
def is_between_10_50(n):
return n > 10 and n < 50
l = [5, 8, 15, 20, 35, 40, 55, 60]
result = list(filter(is_between_10_50, l))
print(result)
# 使用lambda表达式
l = [5, 8, 15, 20, 35, 40, 55, 60]
result = list(filter(lambda x: x > 10 and x < 50, l))
print(result)
总结
Python中的filter()函数给我们提供了一种简单而有效的方法,帮助我们过滤序列中的元素,迅速找出符合条件的元素进行操作。在开发中常常有筛选出指定元素的需求,filter()函数可以非常方便地满足这一需求。所以,我们在日常编程中一定要熟练掌握filter()函数的使用。
