视频教程下载链接:http://pan.baidu.com/s/1gfBQMnL
配套教程下载:http://pan.baidu.com/s/1qYdI6q4
什么是Lambda函数,简单来说,编程中提到的 lambda函数,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。现在我们就来创建一个Lambda函数,实际上,Lambda就是一个没有名称的函数,它可能是临时需要用到的一个小函数,所以我们不希望费劲的用def关键字来定义一个函数,而是直接通过lambda定义一个函数:
answer = lambda x: x*7 |
你看,这个Lambda函数的参数是x,然后,它会将x与7进行乘法运算,然后将这个Lambda函数赋值给answer。这是一个非常小而且简单的lambda函数,冒号的左边是它的参数,冒号的右边是它的具体实现,这个函数没有名称。现在我们就来调用这个Lambda函数:
print(answer(5)) |
运行:
图 3‑23
5*7=35,正确,所以,即使我们把函数赋值给了变量answer,函数自身始终是没有名称的,所以,现在我们已经知道了什么是lambda函数,如何使用它。
实际上,lambda函数还可以被当作函数参数传递到函数中:
def oxox(answer = lambda x: x*7): print(answer(5)) |
这个函数的第一个参数是一个Lambda函数,这个参数的默认值是求出x*7的一个Lambda函数,这里我们按照默认的方式调用这个函数:
oxox() |
运行:
图 3‑24
你看,输出了同样的结果。这说明lambda函数是可以被当作函数参数传递到函数中的。
其实这个时候,我们可以不使用默认的Lambda参数,我们可以构建一个Lambda参数,然后传递进去,这里我们构建一个新的Lambda函数:
oxox(lambda x: x*5) |
运行: 图 3‑25 5*5=25没有问题。所以这就是Lambda的用处,和其他很多语言相比,Python 的 lambda 限制多多,最严重的当属它只能由一条表达式组成。这个限制主要是为了防止滥用,因为当人们发觉 lambda 很方便,就比较容易滥用,可是用多了会让程序看起来不那么清晰,毕竟每个人对于抽象层级的忍耐 / 理解程度都有所不同。但是这并不妨碍Lambda表达式的使用。 更多精彩内容尽在视频中!