【补充】字典为什么叫哈希类型

【补充】字典为什么叫哈希类型

参见博客:https://www.cnblogs.com/dream-ze/p/17580132.html

字典(Dictionary)中的键(Key)必须是不可变类型,这是因为字典使用哈希表(Hash Table)来实现。

  • 哈希表是一种用于快速查找的数据结构,它通过将键映射到特定位置来实现快速访问。
  • 由于哈希表的实现方式,要求字典中的键必须是不可变类型。
    • 不可变类型意味着对象在创建后不能被修改
      • 例如整数、浮点数、字符串、元组等。
    • 这是因为在使用哈希表时,根据键的哈希值来计算位置
      • 如果键是可变类型且在后续操作中发生改变
      • 那么哈希值也会发生变化
      • 导致无法准确访问之前存储的键值对。
  • 同时,字典中的键还需要满足可哈希性(Hashable)。
    • 可哈希性是指对象必须具有一个唯一的哈希值,且该哈希值在对象的生命周期内保持不变。
    • 可哈希性是判断一个对象是否可以作为字典的键的重要条件。
  • 综上所述
    • 字典的键必须是不可变类型且具有可哈希性
    • 这样才能保证字典的正常使用和高效性能。
  • 字典类型被称为哈希类型是因为在其内部实现中使用了哈希表数据结构。
    • 哈希表是一种高效的数据结构
    • 它通过哈希函数将键映射到一个固定大小的数组索引上
    • 从而实现快速的插入、查找和删除操作。
  • 字典类型中的每个键值对都使用哈希函数将键转换成一个唯一的哈希值,并根据该哈希值将键值对存储在哈希表的相应位置上。
    • 当需要对字典进行查找或插入操作时,系统会利用哈希函数计算键的哈希值,并在哈希表中快速找到对应位置的数据。
  • 使用哈希表作为字典类型的内部实现,使得字典可以在平均情况下以常数时间(O(1))完成插入、查找和删除操作。
    • 这些高效的操作特性是由于哈希表能够提供快速的键值对检索能力
    • 即使字典中存储的键值对数量很大也能保持高性能。
  • 因此
    • 字典类型被称为哈希类型是因为其内部实现使用了哈希表这种高效的数据结构来实现快速的插入、查找和删除操作。
posted @ 2023-07-25 15:33  Chimengmeng  阅读(55)  评论(0)    收藏  举报