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 中实现的,以及它为什么以这种方式实现。