0

次の関数の再帰を解消したいのですが、入力データによっては再帰の深さを超えるエラーが発生するためです。 再帰の深さを増やすことは、長期的には解決策ではありません。

def foo(x):
    for element in x.elements:
        element.depth = x.depth + 1
        self.foo(element)

元のリスト構造を保持する必要があるため、リストの平坦化は適用できません。

このソリューションでは、再帰を含むジェネレーターを使用しています。それが発電機であるという事実は違いがありますか?

最後に、スタック アプローチがあります。ここでは、割り当てられる値の相互依存性のため、これが 100% 適用可能かどうかはわかりません。

洗練された (Pythonic) 非再帰的なソリューションは何でしょうか?

4

2 に答える 2