我一直用字典。我用Python写东西。
vsaztqbk1#
字典是一个将键Map到值的一般概念。有许多方法可以实现这样的Map。哈希表是实现字典的一种特定方式。除了哈希表,另一种实现字典的常用方法是red-black trees。每种方法都有自己的优点和缺点。红黑树总是可以在O(log N)内执行查找。哈希表可以在O(1)内执行查找,尽管根据输入的不同,这可能会降级为O(N)。
bis0qfac2#
字典是将键Map到值的数据结构。哈希表是一种数据结构,它通过获取键的哈希值(通过对其应用某个哈希函数)并将其Map到存储一个或多个值的桶来将键Map到值。这类似于询问列表和链表之间的区别。为了清楚起见,需要注意的是,Python目前可能是使用哈希表来实现字典的,将来Python可能会改变这个事实,而不会使字典不再是字典。
hjqgdpho3#
“字典”在编程中有几种不同的含义,正如wikipedia将告诉您的那样--“关联数组”,Python使用该术语的含义(也称为“Map”),是其中的一种含义(但是“数据字典”和密码猜测中的“字典攻击”也很重要)。散列表是重要的数据结构;Python使用它们来实现两个重要的内置数据类型,dict和set。所以,即使在Python中,你也不能认为“hash table”是“dictionary”的同义词......因为类似的数据结构也被用来实现“set”!-)
dict
set
hiz5n14c4#
Python字典在内部是用哈希表实现的。
kiz8lqtg5#
字典和哈希表都将键与值配对,以便在插入、删除或查找时执行快速的大O操作,不同之处在于哈希表使用哈希值来存储(键,值)对,这就是为什么我们可以更快地访问数据。Python将字典实现为哈希表。Map和set是一种新的哈希表,它们在插入时会考虑顺序。并且你可以把任何类型的对象作为键...最近列表和哈希表在Python3中由于顺序的原因更加相似,检查这个以了解更多细节:https://softwaremaniacs.org/blog/2020/02/05/dicts-ordered/en/
wgx48brx6#
哈希表总是使用一些对值进行操作的函数来确定值将存储在何处。字典(我相信您是这么想的)是一个更一般的术语,它只是表示一种查找机制,它可能是哈希表,也可能由一个更简单的结构实现,该结构在确定值的存储位置时不考虑值本身。
bgtovc5b7#
字典是使用哈希表实现的。在我看来,两者之间的区别可以被认为是堆栈和数组之间的区别,我们将使用数组来实现堆栈。
7条答案
按热度按时间vsaztqbk1#
字典是一个将键Map到值的一般概念。有许多方法可以实现这样的Map。
哈希表是实现字典的一种特定方式。
除了哈希表,另一种实现字典的常用方法是red-black trees。
每种方法都有自己的优点和缺点。红黑树总是可以在O(log N)内执行查找。哈希表可以在O(1)内执行查找,尽管根据输入的不同,这可能会降级为O(N)。
bis0qfac2#
字典是将键Map到值的数据结构。
哈希表是一种数据结构,它通过获取键的哈希值(通过对其应用某个哈希函数)并将其Map到存储一个或多个值的桶来将键Map到值。
这类似于询问列表和链表之间的区别。
为了清楚起见,需要注意的是,Python目前可能是使用哈希表来实现字典的,将来Python可能会改变这个事实,而不会使字典不再是字典。
hjqgdpho3#
“字典”在编程中有几种不同的含义,正如wikipedia将告诉您的那样--“关联数组”,Python使用该术语的含义(也称为“Map”),是其中的一种含义(但是“数据字典”和密码猜测中的“字典攻击”也很重要)。
散列表是重要的数据结构;Python使用它们来实现两个重要的内置数据类型,
dict
和set
。所以,即使在Python中,你也不能认为“hash table”是“dictionary”的同义词......因为类似的数据结构也被用来实现“set”!-)
hiz5n14c4#
Python字典在内部是用哈希表实现的。
kiz8lqtg5#
字典和哈希表都将键与值配对,以便在插入、删除或查找时执行快速的大O操作,不同之处在于哈希表使用哈希值来存储(键,值)对,这就是为什么我们可以更快地访问数据。Python将字典实现为哈希表。Map和set是一种新的哈希表,它们在插入时会考虑顺序。并且你可以把任何类型的对象作为键...最近列表和哈希表在Python3中由于顺序的原因更加相似,检查这个以了解更多细节:https://softwaremaniacs.org/blog/2020/02/05/dicts-ordered/en/
wgx48brx6#
哈希表总是使用一些对值进行操作的函数来确定值将存储在何处。字典(我相信您是这么想的)是一个更一般的术语,它只是表示一种查找机制,它可能是哈希表,也可能由一个更简单的结构实现,该结构在确定值的存储位置时不考虑值本身。
bgtovc5b7#
字典是使用哈希表实现的。在我看来,两者之间的区别可以被认为是堆栈和数组之间的区别,我们将使用数组来实现堆栈。