我想解散以下函数的递归,因为某些输入数据导致超出递归深度错误。 从长远来看,增加递归深度并不是一个解决方案。
def foo(x):
for element in x.elements:
element.depth = x.depth + 1
self.foo(element)
列表展平不适用,因为需要保留原始列表结构。
此解决方案使用生成器,但包含递归。它是发电机的事实有什么不同吗?
最后,还有堆栈方法。在这里,我不确定这是否 100% 适用,因为要分配的值相互依赖。
什么是优雅的(Pythonic)非递归解决方案?