Python:lambda表达式的两种应用场景
生活随笔
收集整理的這篇文章主要介紹了
Python:lambda表达式的两种应用场景
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.lambda表達式
python書寫簡單,功能強大, 迅速發展成為 AI ,深度學習的主要語言。介紹Python中的lambda表達式,注意到,它只是一個表達式,不是語句啊。
lambda的語法規則: 一個或多個參數以冒號終止輸入參數,這些參數可以理解為有名函數原型的輸入參數,以后是一個表達式,相當于有名函數的函數體部分。lambda的函數體部分,是作為返回值輸出部分。
2.場景1:map 和 reduce
Python 中的 map 和 reduce,再結合 lambda表達式的話,使用起來會更加高效,如下所示:
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' def sum(mylist):return reduce(lambda x, y: 2*x + 1*y, mylist)可以看到兩個輸入參數 x, y , 返回為 2*x + y ,通過這樣對 mylist 的元素完成化簡操作。
3.場景2: lambda 和 list 結合使用
這個場景在面試中經常被問到,如下所示:
li = [lambda :x for x in range(10)]得到一個 lambda 的list,打印 li0 會得到什么,注意這種調用方法,因為是數組,先拿第一個元素,li[0],后面的括號表示調用lambda表達式。打印的結果為 0 嗎?
NO!是 9
lambda表達式不會形成對函數體內變量的記憶,只記錄最后一個狀態。
那么如果lambda的入參中帶有x, 會得到我們想要的結果0 嗎?
li = [lambda x :x for x in range(10)] res = li[0](0) print(res)輸出:0因此,需要注意區分這兩種寫法的不同,記得這個區別,在一次面試中,曾經被問到,希望對大家有用。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的Python:lambda表达式的两种应用场景的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python with as 用法
- 下一篇: 3种用python代码实现99乘法表