python 字典和哈希表的真正区别是什么?

9rygscc1  于 2023-01-16  发布在  Python
关注(0)|答案(7)|浏览(298)

我一直用字典。我用Python写东西。

vsaztqbk

vsaztqbk1#

字典是一个将键Map到值的一般概念。有许多方法可以实现这样的Map。
哈希表是实现字典的一种特定方式。
除了哈希表,另一种实现字典的常用方法是red-black trees
每种方法都有自己的优点和缺点。红黑树总是可以在O(log N)内执行查找。哈希表可以在O(1)内执行查找,尽管根据输入的不同,这可能会降级为O(N)。

bis0qfac

bis0qfac2#

字典是将键Map到值的数据结构。
哈希表是一种数据结构,它通过获取键的哈希值(通过对其应用某个哈希函数)并将其Map到存储一个或多个值的桶来将键Map到值。
这类似于询问列表和链表之间的区别。
为了清楚起见,需要注意的是,Python目前可能是使用哈希表来实现字典的,将来Python可能会改变这个事实,而不会使字典不再是字典。

hjqgdpho

hjqgdpho3#

“字典”在编程中有几种不同的含义,正如wikipedia将告诉您的那样--“关联数组”,Python使用该术语的含义(也称为“Map”),是其中的一种含义(但是“数据字典”和密码猜测中的“字典攻击”也很重要)。
散列表是重要的数据结构;Python使用它们来实现两个重要的内置数据类型,dictset
所以,即使在Python中,你也不能认为“hash table”是“dictionary”的同义词......因为类似的数据结构也被用来实现“set”!-)

hiz5n14c

hiz5n14c4#

Python字典在内部是用哈希表实现的。

kiz8lqtg

kiz8lqtg5#

字典和哈希表都将键与值配对,以便在插入、删除或查找时执行快速的大O操作,不同之处在于哈希表使用哈希值来存储(键,值)对,这就是为什么我们可以更快地访问数据。Python将字典实现为哈希表。Map和set是一种新的哈希表,它们在插入时会考虑顺序。并且你可以把任何类型的对象作为键...最近列表和哈希表在Python3中由于顺序的原因更加相似,检查这个以了解更多细节:https://softwaremaniacs.org/blog/2020/02/05/dicts-ordered/en/

wgx48brx

wgx48brx6#

哈希表总是使用一些对值进行操作的函数来确定值将存储在何处。字典(我相信您是这么想的)是一个更一般的术语,它只是表示一种查找机制,它可能是哈希表,也可能由一个更简单的结构实现,该结构在确定值的存储位置时不考虑值本身。

bgtovc5b

bgtovc5b7#

字典是使用哈希表实现的。在我看来,两者之间的区别可以被认为是堆栈和数组之间的区别,我们将使用数组来实现堆栈。

相关问题