您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Python中无法哈希的查找表

在Python中无法哈希的查找表

以可变对象作为键的映射通常很困难。那真的是你想要的吗?如果您认为对象是不可变的(在Python中无法真正实现不可变性),或者您知道在将它们用作映射的键??时它们不会被更改,则可以在其中实现自己的哈希函数几种方法。例如,如果您的对象仅具有可哈希的数据成员,则可以将所有数据成员的元组的哈希作为对象哈希返回。

如果您的对象是类似dict的对象,则可以使用所有键值对的冻结集的哈希。

def __hash__(self):
    return hash(frozenset(self.iteritems()))

仅当所有值都是可哈希的时,这才起作用。为了保存对哈希的重新计算(将在每次查找中完成),您可以缓存哈希值,如果设置了脏标志,则只需重新计算即可。

python 2022/1/1 18:53:17 有538人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶