所以我有一个完全正常运行的哈希表类,现在我想定义另一个函数,让我们说一下hash_table的参数并打印出我哈希表中的每个键
def to_print(hash_table):
for a in hash_table:
if a is not None:
print(a)
我被告知我需要一个迭代器,所以我定义了一个iter函数,如下所示:
def __iter__(self):
for item in self.array:
if item is not None:
(key, value)=item
return key
但是,我仍然无法读取哈希表中的密钥。错误发生在我的行'for a hash_table:'对于迭代器,如果我将'return key'更改为'print key',它打印出每个键。我没有定义下一个,因为我认为我不需要它(?)
任何人都可以告诉我问题出在哪里,也许还有一些提示吗?提前谢谢。
EG。我的哈希表由<'apple',6>,<'orange',7>组成,我的输出应打印出苹果和橙色。
答案 0 :(得分:1)
__iter__
必须返回迭代器,尝试执行以下操作:
def __iter__(self):
return (item[0] for item in self.array if item is not None)