python - 使用列表在python中从头开始创建哈希函数
问题描述
嗨,我是 python 的初学者,如果有人帮助我在 python 中编写一个哈希类来执行某些功能,那将非常有用。
我从https://coderbook.com/@marcus/how-to-create-a-hash-table-from-scratch-in-python/得到了这段代码, 仍然缺少一些 iter() 函数,需要帮助
解决方案
我会问自己:
- 包含许多值的哈希列表看起来如何?
- 回报应该是什么样的?
哈希列表可以是您的链接实现的列表列表。现在该__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 中的值是否是列表,并且该值的第一个元素是否也是列表(遍历树)
推荐阅读
- python - 如何合并字典?
- elixir - 如何指定我自己的 Phoenix Channel JSON 序列化器?
- php - 如何使用 PHP Laravel 显示来自 RSS 提要描述的图像
- c++ - Qt C++:信号和插槽参数不兼容
- project-reactor - 无法安装 BlockHound
- python - 如何创建一个扩展具有输入验证的“int”基类的类?
- tensorflow - 如何计算 Tensorflow 中数组的秩?
- python - 如何更新包中的文件?
- java - 类文件 javax/validation/ConstraintViolationException 中非本机或抽象方法中的缺失代码属性
- python - matplotlib 中未排序但规则间隔数据的轮廓图