0

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

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

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

请提供任何帮助。

4

2 回答 2

1

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

x = hash(frozenset([a, b]))
于 2012-11-20T11:26:18.673 回答
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
于 2012-11-20T11:06:13.100 回答