Python过滤函数filter()使用自定义函数过滤序列实例,pythonfilter


filter函数:

filter()函数可以对序列做过滤处理,就是说可以使用一个自定的函数过滤一个序列,把序列的每一项传到自定义的过滤函数里处理,并返回结果做过滤。最终一次性返回过滤后的结果。

filter()函数有两个参数:

第一个,自定函数名,必须的
第二个,需要过滤的列,也是必须的

DEMO

需求,过滤大于5小于10的数:

复制代码 代码如下:

# coding=utf8
# 定义大于5小于10的函数
def guolvhanshu(num):
    if num>5 and num<10:
        return num
 
# 定义一个序列
seq=(12,50,8,17,65,14,9,6,14,5)
 
# 使用filter函数
result=filter(guolvhanshu,seq)
 
# (8,9,6)
print result

执行结果:
复制代码 代码如下:

(8, 9, 6)

因为8,9,6大于5,小于10所以被过滤下来了。


python中的filter()函数怎使用?特别是一个函数有多个输入参数时

map是把函数调用的结果放在列表里面返回,它也可以接受多个 iterable,在第n次调用function时,将使用iterable1[n], iterable2[n], ...作为参数。

filter(function, iterable)
这个函数的功能是过滤出iterable中所有以元素自身作为参数调用function时返回True或bool(返回值)为True的元素并以列表返回.

def f_large_than_5(x):
return x > 5

filter(f_large_than_5, range(10))

>>[6,7,8,9]
 

python程序,filter函数,27环境与31环境的不同

3.x 返回的是一个iter obj,如果想返还【】,要加上list()

>>> list(filter(bigger_than_five,[1,10]))
[6, 7, 8, 9, 10]

其实3.x里面,达到你的这个目的的最简单的方法就直接:
>>> [x for x in range(11) if x > 5]
[6, 7, 8, 9, 10]
 

评论关闭