Lambda函数——Python学习笔记
lambda 函数是一种小的匿名函数。
lambda 函数可接受任意数量的参数,但只能有一个表达式。
(from:W3School)
下面给出一个简单的lambda函数
x = lambda a : a + 10 print(x(6))
上面这段代码等价于下面这段代码
def y(a): return a + 10 print(y(6))
由此可见,lambda函数相对于普通函数来说要简洁的多。
lambda函数还可以这样用。
def f(n): return lambda a : a * n x = f(2) #等价于 x = lambda a : a * 2 print(x(5)) #打印10
因此我们可以在同一个程序中使用lambda函数来定义许多不同的函数。
开篇我们已经提到lambda函数其实与def是一样的,那么究竟选择哪种呢? 分别运行下面这两段代码几次,看一下他们各自的运行时间。
import time start = time.time() i = 0 while True: x = lambda a : a ** 10 x(2) i += 1 if i == 1000000: break end = time.time() runTime = end - start print("运行时间:", runTime, "秒")
import time start = time.time() i = 0 while True: def y(a): return a ** 10 y(2) i += 1 if i == 1000000: break end = time.time() runTime = end - start print("运行时间:", runTime, "秒")
从多次运行的结果,可以看到这两种函数运行100万次的时间大概都是1.1秒(运行环境:Pydroid 3 ,由QAIU汉化,Python3.9.7)。所以说这两种方法哪种都可以,主要是看个人习惯与对于代码的要求(要求可读性强就用def,要求简洁就用lambda函数)。
Posted 2023-01-19 11:28 写bug的代码人
本文标签:
本文总阅读量?次
文章作者 写bug的代码人
文章链接 https://bugcoder.asia/article/010.html
声明 本博客中的所有文章均使用《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》协议授权,转载需注明来源,所有代码均使用MIT开源协议