LOGO

写bug的代码人的博客

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开源协议