Python:如何创建嵌套容器的哈希

时间:2010-11-17 06:25:37

标签: python hash python-3.x containers nested

[Python 3.1]

我正在尝试为容器创建一个哈希,该容器可能包含嵌套容器,深度未知。在层次结构的所有级别,只有内置类型。有什么好办法呢?

为什么我需要它:

我在一个pickle对象(磁盘上)缓存了一些计算的结果。如果使用不同的参数调用该函数,我将需要使该缓存文件无效(这种情况很少发生,所以我不打算将多个文件保存到磁盘)。哈希将用于比较参数。

3 个答案:

答案 0 :(得分:2)

如果所有容器都是元组,并且所有包含的对象都是可清洗的,那么主容器应该是可以清洗的。

答案 1 :(得分:1)

您可以将参数序列化为类似JSON的内容,并将其用于散列。

答案 2 :(得分:0)

我会用json序列化作为字符串[然后如果它仍然需要则散列该字符串]。

from simplejson import dumps

def hash_data(data):
    return hash(dumps(data))