久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

自學Python教程【第六十八節】lambda 表達式

歡迎大家來到自學Python教程教室,上一講我們分享了函數的參數傳遞的相關內容,這節課我們學習Python的另外一個知識點lambda 表達式。lambda 表達式可以充分體現了 Python 是一門簡潔的語言這一特點,來看看吧:

lambda 表達可以被看做是一種匿名函數。它可以讓你快速定義一個極度簡單的單行函數。譬如這樣一個實現三個數相加的函數:

def sum(a, b, c):

return a + b + c

print sum(1, 2, 3)

print sum(4, 5, 6)

輸出:

6

15

如果使用 lambda 表達式來實現:

sum = lambda a, b, c: a + b + c

print sum(1, 2, 3)

print sum(4, 5, 6)

輸出:

6

15

兩種方法的結果是相同的。

lambda 表達式的語法格式:

lambda 參數列表: 表達式

定義 lambda 表達式時,參數列表周圍沒有括號,返回值前沒有 return 關鍵字,也沒有函數名稱。

它的寫法比 def 更加簡潔。但是,它的主體只能是一個表達式,不可以是代碼塊,甚至不能是命令(print 不能用在 lambda 表達式中)。所以 lambda 表達式能表達的邏輯很有限。

lambda 表達式創建了一個函數對象,可以把這個對象賦值給一個變量進行調用,就像上面的例子中一樣。

來看一個復雜一點的例子,把 lambda 表達式用在 def 函數定義中:

def fn(x):

return lambda y: x + y

a = fn(2)

print a(3)

輸出:

5

這里,fn 函數的返回值是一個 lambda 表達式,也就等于是一個函數對象。當以參數2來調用 fn 時,得到的結果就是:

lambda y: 2 + y

a = fn(2) 就相當于:

a = lambda y: 2 + y

所以 a(3) 的結果就是5。

lambda 表達式其實只是一種編碼風格,這種寫法更加 Pythonic。這并不意味著你一定要使用它。事實上,任何可以使用 lambda 表達式的地方,都可以通過普通的 def 函數定義來替代。在一些需要重復使用同一函數的地方,def 可以避免重復定義函數。況且 def 函數更加通用,某些情況可以帶來更好地代碼可讀性。

而對于像 filter、sort 這種需要內嵌函數的方法,lambda 表達式就會顯得比較合適。這個我以后會再單獨介紹。

當然對于初學者來說,了解 lambda 表達式還有一個重要作用就是,看懂別人寫的代碼。

恭喜您在Python自學的道路上又堅持了一天,今天我們學習了Python中lambda 表達式的相關內容,,下節課我們將分享更多Python中的相關內容,敬請關注 !

好啦,今天的分享到這里就結束了,希望大家持續關注馬哥教育官網,每天都會有大量優質內容與大家分享!。

聲明:文章來源于網絡,侵刪!

相關新聞

歷經多年發展,已成為國內好評如潮的Linux云計算運維、SRE、Devops、網絡安全、云原生、Go、Python開發專業人才培訓機構!

    1. 主站蜘蛛池模板: 克拉玛依市| 神池县| 奈曼旗| 贞丰县| 临清市| 太白县| 东台市| 开阳县| 澄迈县| 四会市| 江达县| 嘉祥县| 陇南市| 巢湖市| 斗六市| 通化市| 宜川县| 黑龙江省| 湟中县| 溧阳市| 安仁县| 金沙县| 乌鲁木齐县| 城口县| 上蔡县| 淮滨县| 海宁市| 伊春市| 灵寿县| 沧州市| 喀什市| 北碚区| 浮梁县| 尉犁县| 贵南县| 新民市| 三明市| 高密市| 白朗县| 凯里市| 梓潼县|