[问题] 循环逻辑 (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