python 哈希_python实现哈希集合

本文介绍了哈希表的概念及其在Python中的应用,重点讲述了Python内置的set()函数创建和操作集合的方法。同时,给出了一个面试题目,要求不使用内建哈希表库设计哈希集合,并提供了相关操作的实现,包括add、contains和remove方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、什么是哈希表

哈希表,是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。

给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。

二、python的内置函数set()

在Python set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种。创建集合set、集合set添加、集合删除、交集、并集、差集的操作都是非常实用的方法。

#创建一个集合

test_list = set([])

#添加

test_list.add()

#删除

test_list.remove()

#更新

test_list.update()

三、面试题目

不使用任何内建的哈希表库设计一个哈希集合

具体地说,你的设计应该包含以下的功能add(value):向哈希集合中插入一个值。

contains(value) :返回哈希集合中是否存在这个值。

remove(value):将给定值从哈希集合中删除。如果哈希集合中没有这个值,什么也不做。

示例:

MyHashSet hashSet = new MyHashSet();

hashSet.add(1);

hashSet.add(2);

hashSet.contains(1); // 返回 true

hashSet.contains(3); // 返回 false (未找到)

hashSet.add(2);

hashSet.contains(2); // 返回 true

hashSet.remove(2);

hashSet.contains(2); // 返回 false (已经被删除)

注意:所有的值都在 [0, 1000000]的范围内。

操作的总数目在[1, 10000]范围内。

不要使用内建的哈希集合库。

四、题解

class MyHashSet:

def __init__(self):

self.test_list = set([])

def add(self, key):

self.test_list.add(key)

def remove(self, key):

if self.contains(key):

self.test_list.remove(key);

def contains(self, key):

return key in self.test_list

warning :未经授权,不得转载

有问题的小伙伴请在下方留言,喜欢就点个赞吧;关注我,带你一起写bug

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值