在 Python 基础篇章里,我们提到过一种特殊的函数 —— lambda 函数,或说匿名函数。
Python学习笔记——从入门到报废(十四、函数更优雅(上))
它在一些特定场合扮演着重要作用,例如前一篇我们提到的 dict 按照 value 排序,sorted 函数就传入了一个 lambda 函数:
那么,lambda 函数是什么,其特点是什么,本篇 Python 教程的番外篇,我们来详细讲讲!

lambda 函数又叫匿名函数,即没有名字的函数。
通常,使用 def 定义函数时,我们会有一个函数名、函数计算主体以及 return 语句:
def function_name(arg_1, arg_2): compute something ...return result其中,function_name 就是我们定义的函数的名字。
lambda 函数是一行代码的轻量级函数,它具备普通函数的所有要素,除了函数名。
lambda 函数的格式是这样的:
lambda args: expressionlambda 函数参数: 计算逻辑/返回结果
计算逻辑不能太复杂,通常只是中括号取值、简单运算等。
| 函数名称 | ||
| 代码结构 | ||
| 逻辑复杂度 | ||
| 返回值 |
既然 lambda 也是函数,那么其在定义时,也能支持普通 def 函数的定义方法。
不传入任何参数即可调用的函数,例如:
def say_something():return "Finally, we win!"参照之前 lambda 函数的格式,只需把 args 去了即可:
func = lambda : "Finally, we win!"print(func())# Output: Finally, we win!单参数比较好理解,就是仅有一个变量作为函数参数,例如:
def square(x):return x ** 2改为 lambda 函数形式:
func = lambda x: x ** 2print(func(5))# Output: 25lambda 函数可以接受多参数输入,参数间以 , 隔开,对于如下函数:
def triple_sum(x, y, z):return x + y + z改为 lambda 函数形式为:
func = lambda x, y, z: x + y + zprint(func(2, 4, 7))# Output: 13在讲函数时,我们讲过函数能够设置参数的默认值,其规则参考文章:Python学习笔记——从入门到报废(十三、函数(下))
我们这里不去讲参数默认值的规则,只讲怎么改为 lambda 函数。
假设我们有计算圆形面积的函数,圆周率 默认值为 3.14:
def circle_area(r, pi=3.14):return pi * r ** 2改为 lambda 形式参考前述内容即可:
func = lambda r, pi=3.14: pi * r ** 2print(func(2))# Output: 12.56往期回顾: