Lambda函数——Python学习笔记

Lambda函数的定义

lambda 函数是一种小的匿名函数。

lambda 函数可接受任意数量的参数,但只能有一个表达式。

下面给出一个简单的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:15  写bug的代码人  阅读(57)  评论(0)    收藏  举报