无法从我的哈希表python

时间:2016-10-15 14:08:13

标签: python class iterator hashtable

所以我有一个完全正常运行的哈希表类,现在我想定义另一个函数,让我们说一下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>组成,我的输出应打印出苹果和橙色。

1 个答案:

答案 0 :(得分:1)

__iter__必须返回迭代器,尝试执行以下操作:

def __iter__(self):
    return (item[0] for item in self.array if item is not None)