不小心寫了個遞歸函數,在循環了六百多次的時候就報出了這個錯誤::RuntimeError: maximum recursion depth exceeded
然后改了系統設置,如下
import sys # 導入sys模塊 sys.setrecursionlimit(10000) # 將默認的遞歸深度修改為10000
但是,我要循環的估計得有十萬左右,想到遞歸函數調用是通過棧(stack)這種數據結構實現的,每當進入一個函數調用,棧就會加一層棧幀,每當函數返回,棧就會減一層棧幀。由於棧的大小不是無限的,所以,遞歸調用的次數過多,會導致棧溢出。
后來找到了一位博主說:
所以,還有什么更好的辦法?