Python - 数据结构之哈希表

  • 简述

    哈希表是一种数据结构,其中数据元素的地址或索引值是从哈希函数生成的。这使得访问数据的速度更快,因为索引值充当数据值的键。换句话说,哈希表存储键值对,但键是通过哈希函数生成的。
    因此,随着键值本身成为存储数据的数组的索引,数据元素的搜索和插入功能变得更快。
    在 Python 中,Dictionary 数据类型表示哈希表的实现。字典中的键满足以下要求。
    • 字典的键是可散列的,即由散列函数生成,散列函数为提供给散列函数的每个唯一值生成唯一结果。
    • 字典中数据元素的顺序是不固定的。
    因此,我们通过使用字典数据类型来查看哈希表的实现,如下所示。
  • 访问字典中的值

    要访问字典元素,您可以使用熟悉的方括号和键来获取其值。

    例子

    
    # Declare a dictionary 
    dict = {'Name': 'Alex', 'Age': 7, 'Class': 'First'}
    
    # Accessing the dictionary with its key
    print "dict['Name']: ", dict['Name']
    print "dict['Age']: ", dict['Age']
    

    输出

    执行上述代码时,会产生以下结果 -
    
    dict['Name']:  Alex
    dict['Age']:  7
    
  • 更新字典

    您可以通过添加新条目或键值对、修改现有条目或删除现有条目来更新字典,如下简单示例所示 -

    例子

    
    # Declare a dictionary
    dict = {'Name': 'Alex', 'Age': 7, 'Class': 'First'}
    dict['Age'] = 8; # update existing entry
    dict['School'] = "DPS School"; # Add new entry
    print "dict['Age']: ", dict['Age']
    print "dict['School']: ", dict['School']
    

    输出

    执行上述代码时,会产生以下结果 -
    
    dict['Age']:  8
    dict['School']:  DPS School
    
  • 删除字典元素

    您可以删除单个字典元素或清除字典的全部内容。您还可以在单​​个操作中删除整个字典。要显式删除整个字典,只需使用 del 语句。

    例子

    
    dict = {'Name': 'Alex', 'Age': 7, 'Class': 'First'}
    del dict['Name']; # remove entry with key 'Name'
    dict.clear();     # remove all entries in dict
    del dict ;        # delete entire dictionary
    
    print "dict['Age']: ", dict['Age']
    print "dict['School']: ", dict['School']
    

    输出

    这会产生以下结果。请注意,会引发异常,因为在 del dict 字典不再存在之后。
    
    dict['Age']:
    Traceback (most recent call last):
       File "test.py", line 8, in <module>
          print "dict['Age']: ", dict['Age'];
    TypeError: 'type' object is unsubscriptable