[問題] 迴圈邏輯 (leetcode)

作者: lemonrude (臉猛魯)   2020-05-24 01:39:13
以下代碼如果用 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
懇請解惑謝謝!
作者: nevak (^o^)   2020-05-24 02:43:00
dfs內先寫global default試試另外問一下把default寫在function外面有什麼特別的原因嗎
作者: s0914714 (YA)   2020-05-24 04:22:00
因為list是mutable所以default元素操作是參照globaldefault變數部分 因為dfs function中對default賦值所以default視為local造成上面的default==True出錯https://reurl.cc/9EW90d local/global variables rules如果你在dfs內做default+=[1],default一樣會變local
作者: TuCH (謬客)   2020-05-24 13:54:00
為什麼要多寫一個fun在裡面呢
作者: cuteSquirrel (松鼠)   2020-05-24 13:56:00
猜是解題需要,所以寫了nested func去跑DFS
作者: darama (DoRaMa)   2020-05-24 16:32:00

Links booklink

Contact Us: admin [ a t ] ucptt.com