PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
Python
[問題] lambda 在迴圈內設定的問題
作者:
pshuang
(中山先生忠實信徒-我愛蘿)
2022-03-28 11:22:12
Os環境:Win7
Py版本: 3.8.10
lambda關鍵字,如果在迴圈內設定,又沒帶參數,
感覺結果想不通。想請問原因。
code如下:
#
作者:
DaOppaiLoli
(大歐派蘿莉)
2022-03-28 12:54:00
這應該是 Scope 的關係
https://www.ideone.com/txytbg
就算寫成一般 Function 也會有一樣的情況,i 對 lambda 來說是 Global 但 x 對 lambda 來說是 Local
作者:
ck574b027
(荒圍!定厝!賊!妹!)
2022-03-28 23:37:00
python是用reference(簡稱位置)在運作的,你說的「當下的i」只是i的位置。又因python改變位置需要透過assignment,而i在for並沒有發生這種事,只是在他的位置更新,所以全部lambda都拿著同個i。你可以不要用list comprehension,把第一個例子的[]改成(),結果就會跟第二個一樣,因為generator等於在for才建立lambda
作者:
poototo
(poototo)
2022-03-29 00:19:00
generator也是閉包把local的i讓lambda記住才yield出去[]的例子類似js迴圈的var會共用汙染也就是ck大所說的,都去同一addr取值
繼續閱讀
[問題] Windows Event Log
shanksponpon
[問題] keyboard record
z97801256
[問題] 抓取試算表圖片網址失敗
qpalzm963
[問題] 關於line bot存取csv表格及篩選資料
laya1017
[問題] 請問 map 指定的 function 會不會自動執行?
pshuang
[問題] 關於多重繼承與super的呼叫問題
pshuang
[問題] anaconda虛擬環境套件安裝位置
gene50814
[問題] 用for迴圈找眾數
i329
[問題] Rhino script
corn5465
[問題] 爬蟲 卷商分點資料
unknown
Links
booklink
Contact Us: admin [ a t ] ucptt.com