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'