Python學習--Lambda使用__Python

來源:互聯網
上載者:User

這兩天學習Python一些應用教程的時候,看到這種寫法:


return series.apply(lambda x:((x - min_val) / scale) - 1.0)

lambda是什麼東西。。。。。沒見過,於是search online,大致是說lambda是一個匿名函數,用於解決簡單函數的命名問題,通俗一點說,比如你在程式中想寫這樣一個函數

 
def a(x):    x = x + 1    return xprint(a(2))

那麼如果你像上面那樣寫的話是不是覺得太蠢了。哦不,是太多餘了,你還得為這個函數起一個名字以便於日後閱讀,如果有一種方法不用這樣定義函數,而且只用一行就搞定,是不是很爽。這就是Lambda的作用啦,嘗試下面的寫法:

a = lambda x: x + 1print(a(2)) 

代碼看起來是不是簡潔了不少。或許這個例子並不能說明lambda的便利之處,但現在再回過頭來看看最上面的那個例子,如果你寫了一個函數

def a(x):    x = (x - min_val) / scale) - 1.0    return x 

而這個函數在整個程式中僅僅在這裡使用了一次,那是不是很多餘。而對比最上面的那種寫法,lambda的便利指出一目瞭然。下面具體解釋一下,lambda後面的x是作為函數參數,就是我們常說的形參,冒號後面跟函數實體,單獨使用lambda函數時只能傳入單個參數,也就是只能對一個數進行運算,而運用map()函數也可以將lambda函數應用在列表中:

foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]reslut = map(lambda x: x+1, foo )print(list(reslut))

help(map)的結果如下


製作一個迭代器,使用來自每個迭代器的參數計算函數。 當最短的迭代器耗盡時停止。(google翻譯)

map()函數產生一個迭代器,用來迭代列表中的每個元素,將lambda函數應用到每個元素上,list()函數將迭代器的傳回值轉換成列表輸出。


Python入門新手,第一次寫部落格,歡迎大神指教......................................

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.