首页 > 解决方案 > 使用列表在python中从头开始创建哈希函数

问题描述

嗨,我是 python 的初学者,如果有人帮助我在 python 中编写一个哈希类来执行某些功能,那将非常有用。

我从https://coderbook.com/@marcus/how-to-create-a-hash-table-from-scratch-in-python/得到了这段代码, 仍然缺少一些 iter() 函数,需要帮助

标签: pythonhash

解决方案


我会问自己:

  • 包含许多值的哈希列表看起来如何?
  • 回报应该是什么样的?

哈希列表可以是您的链接实现的列表列表。现在该__iter__(self)方法应该产生一个又一个的值。返回值可能是一个包含两个值的列表。

所以,这是一个穿越问题。从一些代码开始,您可以在 python 中实现:

my_list = [[['key4', 4]], None, [['key1', 1], ['key2', 2]], None, 
          [['key0', 0]], None, None, [['key3', 3]]]

def traverse(my_list=None):
    if isinstance(my_list, (list, tuple)):
        for value in my_list:
            for subvalue in traverse(value):
                yield subvalue
    else:
        yield my_list

print(list(traverse(my_list)))

但这并不能解决您的问题:您可能需要为正确的终止条件添加另外两个条件:

  • 首先测试列表长度和
  • 测试 my_list 中的值是否是列表,并且该值的第一个元素是否也是列表(遍历树)

推荐阅读