filter为python的高阶函数,江湖人称过滤器 通过函数筛选为True的结果
filter刷选出True(符合条件的部分)的结果 filter(function or None,iterable) -->filter object
>>> filter(None,[0,1,2,False,True])
<filter object at 0x03A4B930>
>>> a=filter(None,[0,1,2,False,True])
>>> a
<filter object at 0x03A4B710>
>>> type(a)
<class 'filter'>
>>> list(a)
[1, 2, True]
注意 python2中上述a为一个list对象 而不是filter对象 可直接得出结论 如下:
>>> a=filter(None,[0,1,2,False,True])
>>> a
[1, 2, True]
>>> type(a)
<type 'list'>
=======================================
>>> a=filter(lambda x:x*2,range(0,5))
>>> list(a)
[1, 2, 3,4]
**************************************************************
map python高阶函数之一,江湖人称映射 通过函数形成一个新的列表
>>> a=map(lambda x:x*2,range(1,8))
>>> list(a)
[2, 4, 6, 8, 10, 12, 14]
注意:和filter一样 a这个对象在python2为一个列表对象
**************************************************************
reduce把一个函数作用于序列[x1,x2,x3,x4]上,这个函数必须接两个参数,reduce把结果继续和序列的下一个元素做累积计算,reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4) 如下:
>>> reduce(lambda x,y:x+y,[1,2,3,4,5,6])
21
注意:reduce在python3已经被移除了