它显然是有效的,但是否有两组相同的元素恰好在dict中添加了两个条目?我想我之前就有过这种情况,我把代码从frozenset(...)
改为tuple(sorted(frozenset(...)))
。知道dict和frozenset实现如何确认这是否是必需的吗?
最佳答案
有没有两组相同的元素在dict中添加两个条目?
不。frozenset
hashing algorithm不取决于元素的顺序,只取决于元素本身。具有相同元素的两个fs是相等的,具有相同的哈希值,因此满足“dict identity”的两个条件,换句话说,它们是相同的dict key:
>>> a = frozenset([1,1,1,1,2,3])
>>> b = frozenset([3,3,3,3,2,1])
>>> {a:1, b:2}
{frozenset([1, 2, 3]): 2}
关于python - 使用冷冻套装作为Dict key 是否安全?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28566797/