【发布时间】:2010-11-17 06:25:36
【问题描述】:
[Python 3.1]
我正在尝试为其中可能包含嵌套容器且深度未知的容器创建哈希。在层次结构的所有级别上,只有内置类型。这样做的好方法是什么?
我为什么需要它:
我将一些计算的结果缓存在 pickle 对象中(在磁盘上)。如果使用不同的参数调用函数,我需要使缓存文件无效(这种情况很少发生,所以我不会将多个文件保存到磁盘)。哈希将用于比较参数。
【问题讨论】:
-
您是否希望这些值在创建后能够更改?
-
@aaronsterling:你能澄清一下吗?我不确定我是否在回答您的问题,但容器或其内容不会被修改。然而,我必须强调的是,这个 Python 程序的任何未来调用(在一个新进程中)当然需要持久性。
-
所以您认为文件可能不会被不同的函数参数无效的可能性很小吗?任何散列函数都有可能发生冲突,因此您正在寻找一个具有最小冲突机会的函数。只是想更好地理解这个问题。
-
@Scott Griffiths 是的,我认为这个问题发生的可能性很小。虽然我猜这表明当参数不是很大时,序列化比散列更安全。
标签: python hash python-3.x containers nested