您好,登錄后才能下訂單哦!
小編給大家分享一下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è)資訊頻道!
免責(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)容。