1
Python编程从入门到实践
1.9.1.4 5.1.4 匿名函数
5.1.4 匿名函数

在Python语言中,除了def语句用来定义函数外,还可以使用匿名函数lambda,它是Python中一种生成函数对象的表达式形式。匿名函数通常创建了可以被调用的函数,它返回了函数,而并没有将这个函数命名;普通函数需要依靠函数名去调用,但匿名函数没有,所以需要把这个函数对象复制给某个变量进行调用。

匿名函数的定义形式如下:

lambda参数列表:表达式

关键字lambda表示匿名函数,冒号前面的表示函数参数,可以有多个参数。匿名函数只能有一个表达式,不用写return语句,返回值就是该表达式的结果。用匿名函数有个好处:函数没有名字,所以不必担心函数名冲突。此外,匿名函数也是一个函数对象,可以把匿名函数赋值给一个变量,再利用变量来调用该函数。

有些函数在代码中只用一次,并且函数体比较简单,使用匿名函数可以减少代码量,看起来比较“优雅”。

>>>list(map(lambda x:x*x,[1,2,3,4,5,6,7,8,9])) #求一组数据的平方值

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

>>>s=lambda:"Hello world!".upper()#定义无参数匿名函数,将字母改成大写

>>>print(s())

输出:HELLO WORLD!

【例5.6】输入英文方向单词:up,down,left,right,程序输出相应的中文:向上、向下、向左、向右。

程序运行结果如图5-7所示。

图5-7 运行结果