学习
实践
活动
专区
工具
TVP
写文章

Python 高阶函数

01

函数名也是变量!

abs(-100)

对于这个函数,完全可以把函数名看成变量,它指向一个计算绝对值的函数!

因此,函数名其实就是指向函数的变量,也就是说,变量可以指向函数。

f = abs

f(-10)

10

02

高阶函数

既然变量f可以指向函数,并且函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。

def minus(x, y, f):

return f(x) - f(y)

minus就是高阶函数,因为其参数f,指向了函数。

当我们调用 minus(-10,4,abs)时,根据函数定义,可以推导计算过程如下:

x = -10

y = 4

f = abs

f(x) + f(y) ==> abs(-10) - abs(4) ==> 6

return 6

03

Map

传入的第一个参数是,将f依次作用到序列的每个元素,并把结果作为新的返回。

def f(x):

return x * x

如果不用map,需要这么写:

L = []

for n in [1, 2, 3, 4, 5, 6, 7, 8, 9]:

L.append(f(n))

用map一行代码搞定:

另外一个map例子:

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

结果:

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

再看一个map例子:

def char2num(s):

digits = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}

return digits[s]

print(list(map(char2num,"13579")))#注意“13579”是个序列

结果:

[1, 3, 5, 7, 9]

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180129G00H6Y00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券