美文网首页
2018-08-11

2018-08-11

作者: 淡水t海边 | 来源:发表于2018-08-11 21:57 被阅读0次

高阶函数的调用问题:

#-*-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()作为高阶函数,事实上它把运算规则抽象了,可以计算任意复杂的函数

相关文章

网友评论

      本文标题:2018-08-11

      本文链接:https://www.haomeiwen.com/subject/yvhjbftx.html