pprint
どちらもツリー構造のタイプであるネストされたリストまたは辞書をきれいに印刷できることは知っていますpprint
が、ノードがレベルに応じて右にインデントされるように、任意の数の子を持つクラスベースのツリーが必要です木。
pprint
私がやりたいことを行うために使用できますか? もしそうなら、どのように? ツリーをきれいに印刷する独自の関数を作成できますが、それを行う必要があるかどうかを確認したかったのです。
次の例を検討してください。
class Tree:
def __init__(self, value, *args):
self.value = value
self.children = args
tree = Tree("+", Tree(1), Tree("*", Tree(2), Tree(3)))
ツリーをきれいに印刷した場合の期待される出力は次のとおりです。
+
1
*
2
3
繰り返しますが、私は確かに自分の関数をロールすることができますが、pprint
代わりに使用できるかどうかを確認したいのですが、それがより簡単で、何かを見落としているだけです。
pprintのドキュメントには、私のユース ケースの例はありません。
違いがある場合は、Python 2.7 を使用しています。