作者lemonrude (臉猛魯)
看板Python
標題[問題] 迴圈邏輯 (leetcode)
時間Sun May 24 01:39:13 2020
以下代碼如果用 Default = False
跑迴圈的時候會說 default reference before assignment
https://i.imgur.com/giv72v8.jpg
但如果把 Default 改成一個List 然後指到list 的第0位 卻可以成功執行
請問為什麼python的資料結構只能參照外面的list 跟dic ? 不能參照外面的單一variabl
e嗎?
https://i.imgur.com/uRoopVD.jpg
懇請解惑謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.250.118.109 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1590255555.A.A8F.html
1F:→ nevak: dfs內先寫global default試試05/24 02:43
2F:→ nevak: 另外問一下把default寫在function外面有什麼特別的原因嗎05/24 02:46
我是要用default,來判定有沒有符合情況~~~沒有就false 有就true
3F:推 s0914714: 因為list是mutable所以default元素操作是參照global05/24 04:22
4F:→ s0914714: default變數部分 因為dfs function中對default賦值05/24 04:25
5F:→ s0914714: 所以default視為local造成上面的default==True出錯05/24 04:25
7F:推 s0914714: 如果你在dfs內做default+=[1],default一樣會變local05/24 04:34
了解了 感謝!
※ 編輯: lemonrude (111.250.118.109 臺灣), 05/24/2020 12:37:36
8F:推 TuCH: 為什麼要多寫一個fun在裡面呢 05/24 13:54
9F:→ cuteSquirrel: 猜是解題需要,所以寫了nested func去跑DFS 05/24 13:56
11F:→ darama: trategy/ 05/24 16:32