'toy'Trie実装用のイテレータを作成したいと思います。
追加はすでに次のように機能します。
class Trie:
def __init__(self):
self.root = dict()
pass
def add(self, string, value):
global nops
current_dict = self.root
for letter in string:
nops += 1
current_dict = current_dict.setdefault(letter, {})
current_dict = current_dict.setdefault('value', value)
pass
追加の出力は次のようになります。
trie = Trie()
trie.add("hello",1)
trie.add("world",2)
trie.add("worlds",12)
print trie.root
{'h': {'e': {'l': {'l': {'o': {'value': 1}}}}}, 'w': {'o': {'r': {'l': {'d': {'s': {'value': 12}, 'value': 2}}}}}}
私は、メソッドが必要であることを知っています__iter__
next
。
def __iter__(self):
self.root.__iter__()
pass
def next(self):
print self.root.next()
しかしAttributeError: 'dict' object has no attribute 'next'
。どうすればいいですか?
[更新]完璧な世界では、すべての単語/エントリとそれに対応する値を含む1つの辞書を出力にしたいと思います。