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

你可能感兴趣的:(2018-08-11)