Python字典是哈希表的示例吗?
时间:2020-03-06 14:32:22 来源:igfitidea点击:
字典是Python中的一种基本数据结构,它允许记录"键"以查找任何类型的"值"。这是在内部实现为哈希表吗?如果没有,那是什么?
解决方案
是的,它是一个哈希映射或者哈希表。我们可以在此处阅读由蒂姆·彼得斯(Tim Peters)编写的有关python dict实施的说明。
这就是为什么我们不能将"不可散列"的内容用作字典键(例如列表)的原因:
>>> a = {} >>> b = ['some', 'list'] >>> hash(b) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: list objects are unhashable >>> a[b] = 'some' Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: list objects are unhashable
我们可以阅读有关散列表的更多信息,或者查看它如何在python中实现以及为什么以这种方式实现。
是的。在内部,它被实现为基于Z / 2(源)上的原始多项式的开放式哈希。
扩展一下nosklo的解释:
a = {} b = ['some', 'list'] a[b] = 'some' # this won't work a[tuple(b)] = 'some' # this will, same as a['some', 'list']