函数式编程,
是一种编程范式,它将计算机运算视为数学上的函数计算,并且避免使用程序状态以及易变对象。
1,高阶函数 map( ) 函数 和 reduce( ) 函数。
Python 内建了 map( ) 和 reduce( ) 函数 ,
map( ) 函数,
map( ) 函数接受两个形参,一个是 函数,一个是iterable (可迭代的),
map 将传入的函数依次作用到序列的每个元素,并把结果作为新的 iterator(迭代器)返回。
map( ) 传入第一个参数 f ,即函数对象本身,
由于结果r 是一个 iterator , iterator是惰性序列,因此通过list[ ] 函数让它把整个序列都计算数来并返回一个list。
reduce()函数
reduce( ) 函数,是把一个函数作用在一个序列 [x1,x2,x3,……] 上,
这个函数必须接受两个参数,reduce 把结果继续和序列的下一个元素做累积计算。
reduce(f,[x1,x2,x3,x4]) = f(f(f(x1,x2),x3),x4)
filter( ) 函数
用于过滤序列
filter( ) 把传入的函数依次作用于每个元素,
然后根据返回值是True 和False 决定保留还是丢弃该元素。
sorted( ) 函数,
排序算法,
Python的内置函数 sorted( ) ,可以直接对list进行排序。
sorted( ) 也是一个高阶函数,接收一个 key 函数来实现自定义排序。
lambda( ) 函数
匿名函数 lambda x: x*x
def f(x):
return x*x
关键字lambda表示,匿名函数,冒号前面的x 表示函数参数。
匿名函数只能有一个表达式,返回值就是该表达式的结果。
Python 对匿名函数的支持有限,只能在一些简单的情况下可以使用匿名函数。