我使用^{}函数来获取对象的哈希值,该值包含两个整数和两个字符串。此外,我有一个字典,我在其中存储这些对象;过程是我检查对象是否存在哈希值,如果存在,则更新如果没有,则插入新的对象。在
问题是,当创建对象时,我不知道对象变量的顺序,我希望将对象视为相同的,而不管这些变量的顺序如何。在
除了hash()
函数,是否还有一个不考虑变量顺序的替代函数?在
#Consequently what I want is:
hash((int1,str1,int2,str2)) == hash((int2,str2,int1,str1))
Tags:
通常对于这样的事情,如果你发布一些示例代码,它会有不可估量的帮助,但我假设你有这样的东西:
你在那里取一个元组的散列值,它确实关心顺序。如果希望哈希不关心整数的顺序,那么只需使用frozenset:
^{pr2}$可以使用^{} 代替元组:
但是,从iterable中删除重复项会带来一个微妙的问题:
^{pr2}$可以通过使用^{} 从iterable创建一个计数器,并对计数器的项调用
frozenset
,从而保留原始iterable中每个项的计数:相关问题 更多 >
编程相关推荐