Python中filter函数的使用实例
Python中的filter是一个内置函数,它可以让用户在列表或可迭代对象中处理元素,过滤出满足条件的数据。在此处,我们将介绍如何使用filter函数,并提供一些例子。
使用filter函数
filter函数的语法格式为:
filter(function, iterable)
参数function是一个可选的参数,它指向一个函数,用于对iterable中的元素进行过滤。在Python3中,function默认为None。参数iterable是需要过滤的可迭代对象。
返回值为一个iterator(迭代器),其中包含iterable中所有满足function的元素。
示例:
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def even_number(n):
if n % 2 == 0:
return True
return False
even_nums = list(filter(even_number, nums))
print(even_nums)
在上述示例中,我们创建一个列表nums,其中包含了从1到10的整数。我们定义了一个函数even_number,用于过滤出列表中的偶数。我们然后将函数even_number和列表nums作为参数传入filter函数来获取所有偶数,最后将结果转化成一个列表,并打印它。
输出结果:
[2, 4, 6, 8, 10]
过滤器表达式
在这个示例中,我们将介绍如何使用lambda表达式,并结合filter函数过滤出一个列表中的偶数。
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_nums = list(filter(lambda x: x % 2 == 0, nums))
print(even_nums)
在这个示例中,我们使用lambda表达式定义了一个匿名函数,它用于返回一个元素是否是偶数的真值。我们然后将这个lambda表达式和列表nums作为参数传递给filter函数。最后,我们将结果转化为一个列表,并打印它。
输出结果:
[2, 4, 6, 8, 10]
使用filter函数从字符串列表中过滤单词
在这个示例中,我们将通过使用filter函数和lambda表达式来从字符串列表中过滤出两个字符的单词。
str_list = ['apple', 'banana', 'orange', 'pear', 'kiwi']
two_char_words = list(filter(lambda x: len(x) == 2, str_list))
print(two_char_words)
在这个示例中,我们创建了一个字符串列表str_list,然后定义一个lambda表达式来过滤出长度为2的字符串。我们然后将这个表达式和字符串列表作为参数传递给filter函数。最后,我们将结果转化为一个列表并打印它。
输出结果:
['ki']
结论
如上所述,filter函数非常有用,因为它可以快速地从列表或任何可迭代对象中过滤数据。过滤的条件可以是用户定义的函数或者lambda表达式。无论使用何种技术和方法,filter函数提供了一个快速和有效的方法,使程序员可以快速地处理大量数据。
