函数式编程

函数式编程,

是一种编程范式,它将计算机运算视为数学上的函数计算,并且避免使用程序状态以及易变对象。

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 对匿名函数的支持有限,只能在一些简单的情况下可以使用匿名函数。

    原文作者:聂红波
    原文地址: https://zhuanlan.zhihu.com/p/28965055
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞