python filter函数的使用用法

  • Post category:Python

下面是关于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()函数的使用方法。