Python实现哈希表:从插入、查找、删除操作开始
Python实现哈希表:从插入、查找、删除操作开始
当你提到哈希表,我假设你想要实现一个基本的哈希表数据结构,并且希望能够进行插入、删除和查找操作。以下是一个基于数组的简单哈希表的Python示例代码:pythonclass HashTable: def init(self, size): self.size = size self.table = [[] for _ in range(size)] # 使用列表作为哈希表存储容器
def _hash_function(self, key): return hash(key) % self.size # 使用内置的哈希函数来计算键的哈希值
def insert(self, key, value): hash_key = self._hash_function(key) for pair in self.table[hash_key]: if pair[0] == key: # 如果键已经存在,则更新对应的值 pair[1] = value return self.table[hash_key].append([key, value]) # 将键值对添加到哈希表中
def delete(self, key): hash_key = self._hash_function(key) for index, pair in enumerate(self.table[hash_key]): if pair[0] == key: # 如果键存在,则删除对应的键值对 del self.table[hash_key][index] return
def search(self, key): hash_key = self._hash_function(key) for pair in self.table[hash_key]: if pair[0] == key: # 如果键存在,则返回对应的值 return pair[1] return None # 如果键不存在,则返回None
示例用法hash_table = HashTable(10) # 创建一个大小为10的哈希表hash_table.insert('apple', 1)hash_table.insert('banana', 2)hash_table.insert('cherry', 3)
print(hash_table.search('apple')) # 输出: 1print(hash_table.search('banana')) # 输出: 2print(hash_table.search('cherry')) # 输出: 3
hash_table.delete('banana')print(hash_table.search('banana')) # 输出: None,因为键'banana'已被删除
这段代码实现了一个基本的哈希表数据结构,其中包含了插入、删除和查找操作。在代码示例中:
- 我们使用内置的
hash()函数来计算键的哈希值,并将键值对存储在内部的数组列表中。2. 为了处理哈希冲突,我们使用了拉链法(链地址法)来解决冲突,即将具有相同哈希值的键值对存储在同一个链表中。
希望这段代码能够帮助你理解如何在Python中实现一个基本的哈希表。
原文地址: https://www.cveoy.top/t/topic/unZ 著作权归作者所有。请勿转载和采集!