我一直用字典。我用 Python 编写。
字典是一个将键映射到值的通用概念。 有很多方法可以实现这种映射。
哈希表是实现字典的一种特定方式。
除了哈希表之外,另一种常见的字典实现方式是红黑树。
每种方法都有其自身的优点和缺点。 红黑树总是可以在 O(log N) 内执行查找。 哈希表可以在 O(1) 时间内执行查找,尽管根据输入的不同,这可能会降低到 O(N)。
字典是一种将键映射到值的数据结构。
哈希表是一种数据结构,它通过获取键的哈希值(通过对其应用一些哈希函数)并将其映射到存储一个或多个值的存储桶来将键映射到值。
IMO 这类似于询问列表和链表之间的区别。
为了清楚起见,可能需要注意的是,Python 目前可能使用哈希表实现其字典,并且将来可能会出现 Python 改变这一事实而不导致其字典不再是字典的情况。
“字典”在编程中有几种不同的含义,正如 wikipedia 会告诉你的那样——“关联数组”,Python 使用该术语的含义(也称为“映射”),就是其中之一。 (但是“数据字典”和密码猜测尝试中的“字典攻击”也很重要)。
哈希表是重要的数据结构; Python 使用它们来实现两种重要的内置数据类型:
dict
和 set
。
所以,即使在Python中,你也不能将“哈希表”视为“字典”的同义词...因为类似的数据结构也用于实现“集合”!-)
Python 字典在内部是通过哈希表实现的。
字典和哈希表都将键与值配对,以便在插入、删除或查找时进行快速的大 O 操作,不同之处在于哈希表使用哈希来存储(键,值)对,这就是我们可以访问数据的原因快点。 Python 将字典实现为哈希表,映射和集合是新型哈希表,它们在插入时考虑顺序,并且您可以将任何类型的对象作为键...... 最近,由于顺序原因,Python3 中的列表和哈希表更加相似,请查看以下内容以获取更多详细信息: https://softwaremaniacs.org/blog/2020/02/05/dicts-ordered/en/
哈希表总是使用一些对值进行操作的函数来确定值的存储位置。字典(正如我相信你想要的那样)是一个更通用的术语,它只是表示一种查找机制,它可能是一个哈希表,也可能由一个更简单的结构实现,该结构在确定其存储位置时不考虑值本身。
字典是使用哈希表实现的。在我看来,两者之间的区别可以被认为是堆栈和数组之间的区别,我们将使用数组来实现堆栈。
字典和哈希表都是.NET中存储键值对的数据结构,但它们有一些区别:
类型安全:
性能:
空键和值:
线程安全:
继承: