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