python内建函数可以理解为python自带的函数,不需要导入模块即可使用。而lambda函数可以理解为定义函数的另外一种方式,与def不同的是它是一个表达式,而def是一个语句。于是,lambda比def“更小”,可以出现在def不能出现的位置,例如列表中:[lambda x: x * 2,lambda x: x * 3]。而在python的内建函数中,lambda定义函数的方式也有着其用途。例如max()函数,其作用是返回一个列表中最大的一项,而这个大小的判定规则是由max()函数中的key参数确定的。例如:

>>>l = ['a.b.c','a.b.c.d','1.2.3.4.5']
>>>max(l,key = lambda n: len(n.split('.')))
>>>'1.2.3.4.5'

上述例子中,key参数也可以使用一个由def定义的函数,不过要在使用之前就定义好。

>>>def fun(n):
    return len(n.split('.'))
>>>l = ['a.b.c','a.b.c.d','1.2.3.4.5']
>>>max(l,key = fun)
>>>'1.2.3.4.5'