溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python中設(shè)置lambda的原因

發(fā)布時(shí)間:2020-12-15 09:27:48 來源:億速云 閱讀:151 作者:小新 欄目:編程語言

小編給大家分享一下python中設(shè)置lambda的原因,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

1.lambda語法

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

2. 傳遞參數(shù)

如函數(shù)一樣,lambda表達(dá)式也可以傳遞參數(shù),但是不同的是,其不能有默認(rèn)參數(shù)。一個(gè)lambda調(diào)用的實(shí)參數(shù)目永遠(yuǎn)要和形參數(shù)目相等。

舉個(gè)例子:

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

3. 指定返回類型

如前面所提到,如果一個(gè)lambda體包含return之外的任何語句,則編譯器假定此lambda返回void。

//錯(cuò)誤示范:編譯器推斷為void,實(shí)際為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.實(shí)例:lambda函數(shù)會(huì)提高效率,那究竟是不是呢?我們寫一段代碼來驗(yàn)證一下

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

以上是“python中設(shè)置lambda的原因”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI