小编典典

使用pickle.dumps哈希可变对象

python

我了解为什么将可变对象放入字典很危险。但是,将所有列表/集合转换为元组/
frozensets是昂贵的;对于许多类型,根本没有容易获得的不可变版本。因此,有时值得直接散列可变对象,并采取适当的预防措施以确保所讨论的对象永远不会被修改。

在开始为可变对象实现非常复杂的自定义哈希函数之前,我想检查一下pickle.dumps用作哈希函数是否存在任何缺点-
无论是在性能,碰撞还是其他方面。


阅读 213

收藏
2021-01-20

共1个答案

小编典典

出于类似的原因,不能保证泡菜的输出是规范的,因为决定和设置顺序是不确定的。不要将pickle或pprint或repr用于哈希。

2021-01-20