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'已被删除

这段代码实现了一个基本的哈希表数据结构,其中包含了插入、删除和查找操作。在代码示例中:

  1. 我们使用内置的hash()函数来计算键的哈希值,并将键值对存储在内部的数组列表中。2. 为了处理哈希冲突,我们使用了拉链法(链地址法)来解决冲突,即将具有相同哈希值的键值对存储在同一个链表中。

希望这段代码能够帮助你理解如何在Python中实现一个基本的哈希表。

Python实现哈希表:从插入、查找、删除操作开始

原文地址: https://www.cveoy.top/t/topic/unZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录