R S*_*hko 192

字典是将键映射到值的一般概念.有许多方法可以实现这种映射.

哈希表是实现字典的特定方式.

除了哈希表之外,另一种实现字典的常用方法是红黑树.

每种方法都有自己的优点和缺点.红黑树总是可以在O(log N)中执行查找.哈希表可以在O(1)时间内执行查找,尽管根据输入可以降级为O(N).

  • 我希望我能不止一次地投票. (20认同)

dan*_*ben 27

字典是将键映射到值的数据结构.

哈希表是一种数据结构,它通过获取键的哈希值(通过对其应用一些哈希函数)将键映射到值,并将其映射到存储一个或多个值的存储桶.

IMO这类似于询问列表和链表之间的区别.

为清楚起见,可能需要注意的是,Python当前可能是使用散列表实现其字典的情况,并且将来可能会出现Python改变这一事实而不会导致其字典停止成为字典的情况.

  • 考虑一下,哈希表必须存储密钥以防碰撞! (4认同)
  • @马丁·贝克特(Martin Beckett):不。两者都可以存储密钥。字典是通用的。哈希表是一般概念的特定实现。 (2认同)
  • @danben:不.密钥的存储不是一个显着特征.区别特征是字典是一种通用概念,其中哈希表是实际的实现. (2认同)

Ale*_*lli 16

"字典"在编程中有一些不同的含义,正如维基百科会告诉你的那样 - "关联数组",Python使用这个术语的意义(也称为"映射")就是其中一个含义(但是数据字典"和"字典攻击"在密码猜测尝试中,也很重要).

哈希表是重要的数据结构; Python使用它们来实现两个重要的内置数据类型,dict以及set.

因此,即使在Python中,也不能将"哈希表"视为"词典"的同义词......因为类似的数据结构也用于实现"集合"! - )


Nic*_*lás 9

Python字典在内部使用哈希表实现.