记录 之 遇到的 lamda 表达式和功能理解
這里只是為了記錄我所遇到的兩種情況,還有更多的應(yīng)用場(chǎng)合,大家可以查看python手冊(cè)
1.形如,lamda x:x,lamda x:x^2,lamda x:f(x)等:
? ?這其實(shí)等價(jià)于定義可一個(gè)函數(shù),即:
? ?def function(x):
? ? ? ? ?return f(x)
? ?這種特殊的用法,可以用于殘差網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì).
2.例:result = [lambda x: x + i for i in range(7)]?
? ?這種用法相對(duì)來說比較難理解,但本質(zhì)上還是跟1所介紹的涵義是一樣的,只不過呢,關(guān)于i的取值是什么比較難理解。
? ?這里i是控制列表內(nèi)lamda函數(shù)數(shù)目的變量,也是,lamda函數(shù)的參數(shù),但這里我們需要注意的是:在lambda函數(shù)內(nèi)的?i 并不會(huì)被立即求值,而是會(huì)被保留為引用,(這里引用的概念十分重要)直到調(diào)用這個(gè)lambda函數(shù)時(shí),才去獲取i的值,而生成結(jié)束后,i的值此時(shí)為6,因此result的每一個(gè)值都為x+6。
例:
for i in range(7):
? ? print(result[i](10))
輸出:16 16 16 16 16 16 16
其實(shí)lamda函數(shù)的理解涉及到閉包的概念,閉包,即可以訪問函數(shù)內(nèi)部變量的函數(shù),這也正印證了第一種說法的正確性。
總結(jié)
以上是生活随笔為你收集整理的记录 之 遇到的 lamda 表达式和功能理解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pytorch 之 torch.eye(
- 下一篇: pytorch 之 分开安装 torch