哈希表的创建与查找的代码
时间: 2024-02-12 14:08:40 浏览: 38
哈希表是一种常用的数据结构,它可以实现快速的数据查找和插入操作。下面是哈希表的创建与查找的代码示例:
创建哈希表:
```python
class HashTable:
def __init__(self, size):
self.size = size
self.hash_table = [[] for _ in range(size)]
def _hash(self, key):
return hash(key) % self.size
def insert(self, key, value):
hash_key = self._hash(key)
for i, pair in enumerate(self.hash_table[hash_key]):
if pair[0] == key:
self.hash_table[hash_key][i] = (key, value)
return
self.hash_table[hash_key].append((key, value))
def search(self, key):
hash_key = self._hash(key)
for pair in self.hash_table[hash_key]:
if pair[0] == key:
return pair[1]
raise KeyError(key)
```
在上面的代码中,我们使用了一个包含列表的列表来存储哈希表,其中每个子列表包含一个键值对的元组。我们使用 `_hash()` 函数来计算每个键的哈希值,并将其映射到哈希表中的一个位置。在插入键值对时,我们先计算键的哈希值,然后遍历对应位置的子列表,如果找到相同的键,则更新其值,否则添加一个新的键值对。在查找键值对时,我们先计算键的哈希值,然后遍历对应位置的子列表,如果找到相同的键,则返回其值,否则抛出 `KeyError` 异常。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)