我正在使用
hash()
函数来获取包含两个整数和两个字符串的对象的哈希值。我有一个字典用来存储这些对象。我的流程是:如果该对象的哈希值存在,则更新,否则插入新的对象。
问题在于,在创建对象时,我不知道对象变量的顺序,而且我希望无论这些变量的顺序如何,都将对象视为相同。
是否有替代hash()
函数的函数,它不考虑变量的顺序?
#Consequently what I want is:
hash((int1,str1,int2,str2)) == hash((int2,str2,int1,str1))
hash(tuple(sorted((1, 2))))
。 - Tom Lynch