1
簡単に管理できるツリークラスを定義しようとしています(ノードを追加して子を取得し、dfsやbfsスタイルでそれを歩きます)が、私はちょっとだけPythonについて知っています私のコードを実行しているときにエラーで立ち往生:ツリークラスとしてのリストの辞書
AttributeError: 'Tree' object has no attribute 'get'
は、これは私のコードで、今では私は、ノードの追加を実装しました:
class Tree(dict):
def __init__(self):
self = {}
def add(self, node, child):
if self.get(int(node)):
childs = self.get(int(node))
childs.append(int(child))
self.update({int(node):childs})
else:
self.update({int(int(node)):[int(child)]})
def main():
tot = int(input("Cantidad de relaciones: "))
t = Tree()
for i in range (0, tot):
for i in range (0,1):
a = []
a.extend(input().split())
t.add(a[0], a[1])
print(t)
main()
...ありがとう!私は今、別の問題を抱えています。理由はわかりませんが、リストを生成していませんが、値とキーをオーバーライドしています。たとえば、この関係を追加するとします:1 2、1 3; dictは{1:[2,3]の代わりに{1:3}を持っています – Fjallbacka
私は入力文字列をスペース 'input()。split()'で分割したと思います。それを価値のあるキーとして辞書に追加します。 より包括的なアプローチが必要 – Broly
いいえ、間違いは、リストとしてではなく数値としての値を初期化したことです。今は動作しています(誰もが見ることができるように私のコードを編集します) – Fjallbacka