这里有新鲜出炉的 Python 教程,程序狗速度看过来!
Python 编程语言
Python 是一种面向对象,解释型计算机程序设计语言,由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年.Python 语法简洁而清晰,具有丰富和强大的类库.它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是 C/C++)很轻松地联结在一起.
Lambda 表达式在 Python 中经常使用到,本文是给大家分享的小编总结出来的 Lambda 表达式的常用方法.
最近在 coding 时发现使用 lambda 还是有诸多优点的,很多时候代码更整洁,更 pythonic,所以在此简单总结一下
1.lambda 是什么
举个简单的例子:
两个 func 的定义是完全相同的,那两种函数定义方法配合 map 使用,将 list 中所有元素求平方,代码会是什么样的,
func = lambda x: x*x
def func(x):
return x*x
对比之下,效果还是显而易见.首先 func 函数的功能十分简单,而且很有可能只使用这一次,所以说我们在这里定义了一个功能简单,使用频次不高的函数.在这个例子中,使用 lambda 创建匿名函数不但不会影响代码的可读性,还能精简代码,减少不必要的函数调用.其实这种场景很常见,我们需要一个简单的单行函数,做一件简单的事,我们甚至连函数的名字都无需在意,此时 lambda 就是我们不错的选择.
def func(x):
return x*x
map(func, [i for i in range(10)])
map(lambda x: x*x, [i for i in range(10)])
2. 是否使用 lambda
lambda 定义了一个匿名函数,使用它并不会带来代码执行效率的提升.lambda 通常与 map,reduce,filter 在遍历列表时配合使用,但是一味的追求 lambda 的使用,对代码可读性往往带来灾难性的后果.python 对 lambda 有着严苛的约束,毕竟它只能由一条表达式组成.lambda 很方便不假,但是如果使用过度,程序的逻辑性看起来就不那么清晰,毕竟每个人对抽象的理解是不同的.
如果一个列表生成式,仅使用 for,if,in 就能实现,我不会使用 lambda
如果函数不足够简单,涉及到循环等复杂逻辑,我会定义函数,让代码更具可读性,此时我不会使用 lambda
在我看来,lambda 的存在是为了减少单行函数的定义,所以只用来代替单行函数的定义就足够了.
来源: http://www.phperz.com/article/18/0127/362997.html