2018-08-11

高阶函数的调用问题:

#-*-coding:utf-8-*-

... def add(x,y,f):

...    return f(x) + f(y)

...

>>> print(add(-5,6,abs))

11

总结:把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式


map()函数:

map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。

def f(x):

...    return x*x

...

>>> r = map(f,[1,2,3,4,5,6,7,8,9])

>>> list(r)

[1, 4, 9, 16, 25, 36, 49, 64, 81]

map()传入的第一个参数是f,即函数对象本身。由于结果r是一个Iterator,Iterator是惰性序列,因此通过list()函数让它把整个序列都计算出来并返回一个list。



list(map(str,[1,2,3,4,5,6,7,8,9]))

['1', '2', '3', '4', '5', '6', '7', '8', '9']

map()作为高阶函数,事实上它把运算规则抽象了,可以计算任意复杂的函数

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容