[英]How eliminate recursion in Python to solve RuntimeError?
我使用遞歸代碼運行代碼,但出現以下錯誤:
RuntimeError: maximum recursion depth exceeded while calling a Python object
我的代碼是這樣的:
def comp_ele(old, new):
res = None
if isinstance(old, dict):
res = comp_dict(old, new)
elif isinstance(old, list):
res = comp_arr(old, new)
else:
pass
return res
def comp_arr(old_arr, new_arr):
i = min(len(old_arr), len(new_arr))
result = {u'a':{}, u'u':{}, u'r':{}}
for index in xrange(i):
res = comp_ele(old_arr[index], new_arr[index])
if res is not None:
result[u'u'][index] = res
# ...
return result
def comp_dict(old_obj, new_obj):
# like comp_arr
# ...
result = {u'a':{}, u'u':{}, u'r':{}}
#...
result = comp_ele(old_obj[index], new_obj[index])
#...
return result
我已經用過但不能解決:
sys.setrecursionlimit(1500)
因此,我應該將recursion
更新為while
以解決運行時錯誤,但是我應該怎么做? 使用itertools
嗎?
謝謝大家,我已經解決了問題。 在一種情況下,此原因是無限循環。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.