Python Data Structure 简明教程

Python - Hash Table

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

Hash tables are a type of data structure in which the address or the index value of the data element is generated from a hash function. That makes accessing the data faster as the index value behaves as a key for the data value. In other words Hash table stores key-value pairs but the key is generated through a hashing function.

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

So the search and insertion function of a data element becomes much faster as the key values themselves become the index of the array which stores the data.

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

In Python, the Dictionary data types represent the implementation of hash tables. The Keys in the dictionary satisfy the following requirements.

  1. The keys of the dictionary are hashable i.e. the are generated by hashing function which generates unique result for each unique value supplied to the hash function.

  2. The order of data elements in a dictionary is not fixed.

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

So we see the implementation of hash table by using the dictionary data types as below.

Accessing Values in Dictionary

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

To access dictionary elements, you can use the familiar square brackets along with the key to obtain its value.

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

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

When the above code is executed, it produces the following result −

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

Updating Dictionary

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

You can update a dictionary by adding a new entry or a key-value pair, modifying an existing entry, or deleting an existing entry as shown below in the simple example −

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

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

When the above code is executed, it produces the following result −

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

Delete Dictionary Elements

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

You can either remove individual dictionary elements or clear the entire contents of a dictionary. You can also delete entire dictionary in a single operation.To explicitly remove an entire dictionary, just use the del statement.

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 之后,词典就不再存在。

This produces the following result. Note that an exception is raised because after del dict dictionary does not exist anymore.

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