python中为什么要设置lambda?

python中为什么要设置lambda?,第1张

python中为什么要设置lambda?

今天我们所要讲的lambda是一个匿名函数,意思就是没有名字。虽然它叫函数,但其实更偏向于一个表达式,这里我们看了下面的语法就会发现。这里需要提醒大家的是,一定不要认为它是代码块。下面我们就lambda基础的语法、参数、返回类型、实例用法展开讲解。

1.lambda语法

lambda [arg1 [,arg2,.....argn]]:expression

2. 传递参数

如函数一样,lambda表达式也可以传递参数,但是不同的是,其不能有默认参数。一个lambda调用的实参数目永远要和形参数目相等。

举个例子:

auto f = [](const string &lhs, const string &rhs) 
{ return a.size() < b.size(); };

3. 指定返回类型

如前面所提到,如果一个lambda体包含return之外的任何语句,则编译器假定此lambda返回void。

//错误示范:编译器推断为void,实际为int
auto f = [](int i) { if(i < 0) return -i; else return i; };
 
//可以修改为如下
auto f = [](int i) -> int { if(i < 0) return -i; else return i; };

4.实例:lambda函数会提高效率,那究竟是不是呢?我们写一段代码来验证一下

import time
 
 
# 测试的Def函数
def square1(n):
    return n ** 2
 
 
# 测试的Lambda函数
square2 = lambda n: n ** 2
 
print(time.time())
 
# 使用Def函数
i = 0
while i < 1000000000:
    square1(100)
    i += 1
 
print(time.time())
 
# 使用lambda函数
i = 0
while i < 1000000000:
    square2(100)
    i += 1
 
print(time.time())
 
1413272496.27
1413272703.05 (Def   函数:207s)
1413272904.49 (Lambda函数:201s)

今天的lambda相信大家都学会了,只用简单的代码就能被调用,这也是我们在python中要设置它的原因,简单调用就可以求值。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/3013717.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-28
下一篇 2022-09-28

发表评论

登录后才能评论

评论列表(0条)

保存