【发布时间】:2013-10-22 12:51:52
【问题描述】:
有谁知道python3使用什么样的哈希函数?有没有办法重新实现函数接受列表作为键?
【问题讨论】:
标签: python python-3.x dictionary
有谁知道python3使用什么样的哈希函数?有没有办法重新实现函数接受列表作为键?
【问题讨论】:
标签: python python-3.x dictionary
见hash() function;对象类型实现__hash__ hook function。
不,你不能让它接受lists,但是list 的子类可以工作。请注意,不保持键的散列和相等性测试稳定会破坏您的字典。
不过,您最好将 tuples 存储为键。把一个列表变成一个元组很简单:
my_dictionary[tuple(my_list)] = my_value
【讨论】:
frozenset 作为列表的可散列等效项。