从Set中获取唯一值“Hashcode”

时间:2012-11-20 10:47:00

标签: python python-2.7 set

我想将一组两个int值表示为一个值,所以我可以:

x = f(a,b) = f(b,a)

所以x不应该代表多个集合。

请帮助。

2 个答案:

答案 0 :(得分:1)

frozenset类型是可清除的,您可以从任何可迭代创建一个类型。要获取哈希值,只需使用内置的hash函数:

x = hash(frozenset([a, b]))

答案 1 :(得分:0)

如果您不希望整数作为x的值,我认为返回有序元组应该没问题(它适用于所有数量的值):

>>> s = {1, 2}
>>> s2 = {2, 1}
>>> f = lambda s: tuple(sorted(s))
>>> f(s)
(1, 2)
>>> f(s2)
(1, 2)
>>> f(s) == f(s2)
True