正如在this post中详细阐述的那样,命令
str(hash(frozenset(kwargs.items())))
如果重新启动解释器,会为同一个字典产生不同的结果。现在显而易见的问题是:由于我需要哈希进行缓存,因此当字典相同时我需要一个哈希值相同(否则缓存没有任何意义)。那么说,我怎样才能为每个(非嵌套的)字典获得一个单独的散列?
答案 0 :(得分:0)
一个简单的
":".join(key for key in sorted(kwargs.items()))
应该足够了。当然这假设键是字符串并且它们是稳定的,如果不是,你需要在它们周围调用str
(并确保它有意义)和/或提供适当的比较。