python 中是否有一种数据类型接受一对 (a,b) 并对称地对待它?也就是说,(a,b) 被视为与 (b,a) 相同的事物。最好不需要通过检查 a 和 b 的位置是否互换来手动检查两对是否相等的代码。
最佳答案
您正在寻找 set()
type :
>>> pair = {'a', 'b'}
>>> pair == {'b', 'a'}
True
set
没有顺序。如果您需要将它们用作字典中的键,请使用不可变的 frozenset()
type反而。 frozenset
用于set
,tuple
用于list
。
只有一个限制:就像字典键一样,为了能够将值放入 set
中,它们需要是可哈希的,这通常归结为没有可变类型。
此外,集合中的值必须都是唯一的; {'a', 'a'}
简化为 {'a'}
,一组只有一个值。您可以使用 collection.Counter()
objects如果您的对需要支持重复值。
关于Python 对称对数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21686376/