Python Data Structure 简明教程

Python - Hash Table

散列表是一种数据结构,其中数据元素的地址或索引值是由散列函数生成的。由于索引值充当数据值的键,因此访问数据会更快。换句话说,散列表存储键值对,但该键是通过散列函数生成的。

因此,数据元素的搜索和插入功能会变得更快,因为键值本身将成为存储数据的数组的索引。

在 Python 中,字典数据类型表示散列表的实现。词典中的键满足以下要求。

  1. 词典的键是可散列的,即它们是由散列函数生成的,该函数针对提供给散列函数的每个唯一值生成唯一的结果。

  2. 词典中数据元素的顺序是不固定的。

因此,我们看到使用字典数据类型实现散列表,如下所示。

Accessing Values in Dictionary

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

Example

# Declare a dictionary
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

# Accessing the dictionary with its key
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])

Output

执行上述代码后,将生成以下结果 −

dict['Name']:  Zara
dict['Age']:  7

Updating Dictionary

你可以通过添加新条目或键值对、修改现有条目或删除现有条目来更新词典,如下面的简单示例所示 −

Example

# Declare a dictionary
dict = {'Name': 'Zara', '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'])

Output

执行上述代码后,将生成以下结果 −

dict['Age']:  8
dict['School']:  DPS School

Delete Dictionary Elements

你可以删除单个词典元素或清除词典的全部内容。你也可以通过单个操作来删除整个词典。要明确删除整个词典,只需使用 del 语句。

Example

dict = {'Name': 'Zara', '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'])

Output

这会产生以下结果。请注意,会引发异常,因为在 del dict 之后,词典就不再存在。

dict['Age']:  dict['Age']
dict['School']:  dict['School']