下面是关于Python filter函数的使用攻略。
filter函数简介
filter()
是Python内置的函数之一,它用于过滤序列,过滤掉不符合条件的元素,返回一个过滤后的新序列。
filter()
函数的语法如下:
filter(function, iterable)
其中,function
参数是一个函数,用于筛选序列中的元素,iterable
参数是一个可迭代的序列(列表,元组,集合等)。
在Python 3.x中,filter()
函数返回的是一个filter对象,需要用list()
方法将其转换为列表,也可以用循环语句(如for)依次查看过滤后的元素。
filter函数的用法示例
首先,我们来看一个最简单的例子,如何使用filter()
函数过滤出一个列表中大于等于5的元素:
numbers = [1, 4, 7, 9, 2, 6, 11]
def is_greater_than_five(x):
return x >= 5
filtered_numbers = filter(is_greater_than_five, numbers)
print(list(filtered_numbers))
运行结果为:
[7, 9, 6, 11]
在这个例子中,is_greater_than_five()
函数接收一个值,如果它大于或等于5,则返回True
。通过将这个函数作为filter()
的第一个参数,我们对numbers
列表进行过滤。最后再用list()
方法将filter对象转换为列表。
接下来,我们来看一个更实际的例子,用filter()
函数从一个字符串列表中过滤出长度为3或4的字符串:
words = ['cat', 'window', 'defenestrate', 'mango', 'book']
def is_length(value):
return len(value) == 3 or len(value) == 4
filtered_words = filter(is_length, words)
print(list(filtered_words))
运行结果为:
['cat', 'mango', 'book']
在这个例子中,我们定义了一个is_length()
函数,用于判断一个字符串的长度是否等于3或4。然后,我们用这个函数和filter()
函数对words
列表进行过滤,最后将结果转换为一个列表。
总结
filter()
函数是一个非常有用的函数,它可以让我们轻松地对一个序列进行过滤。我们只需要传入一个函数和一个序列,就可以得到一个过滤后的新序列。
通过上面两个简单的例子,我相信你已经掌握了filter()
函数的使用方法。