博客地址:https://www.cnblogs.com/zylyehuo/

# -*- coding: utf-8 -*-

class LinkList:
class Node:
def __init__(self, item=None):
self.item = item
self.next = None class LinkListIterator:
def __init__(self, node):
self.node = node def __next__(self):
if self.node:
cur_node = self.node
self.node = cur_node.next
return cur_node.item
else:
raise StopIteration def __iter__(self):
return self def __init__(self, iterable=None):
self.head = None
self.tail = None
if iterable:
self.extend(iterable) def append(self, obj):
s = LinkList.Node(obj)
if not self.head:
self.head = s
self.tail = s
else:
self.tail.next = s
self.tail = s def extend(self, iterable):
for obj in iterable:
self.append(obj) def find(self, obj):
for n in self:
if n == obj:
return True
else:
return False def __iter__(self):
return self.LinkListIterator(self.head) def __repr__(self):
return "<<" + ", ".join(map(str, self)) + ">>" # 类似于集合的结构
class HashTable:
def __init__(self, size=101):
self.size = size
self.T = [LinkList() for _ in range(self.size)] def h(self, k):
return k % self.size def insert(self, k):
i = self.h(k)
if self.find(k):
print("Duplicated Insert.")
else:
self.T[i].append(k) def find(self, k):
i = self.h(k)
return self.T[i].find(k) ht = HashTable() ht.insert(0)
ht.insert(1)
ht.insert(3)
ht.insert(102)
ht.insert(508) print(",".join(map(str, ht.T)))
print(ht.find(203))
print(ht.find(3))

哈希表(实现 Python 中的集合 set)的更多相关文章

  1. python 中的集合set

    python中,集合(set)是一个无序排列,可哈希, 支持集合关系测试,不支持索引和切片操作,没有特定语法格式, 只能通过工厂函数创建.集合里不会出现两个相同的元素, 所以集合常用来对字符串或元组或 ...

  2. Python中的集合类型分类和集合类型操作符解析

    集合类型    数学上,把set称作由不同的元素组成的集合,集合(set)的成员通常被称作集合元素(set elements).    Python把这个概念引入到它的集合类型对象里.集合对象是一组无 ...

  3. python学习之【第七篇】:Python中的集合及其所具有的方法

    1.前言 python中的集合set与列表类似,它们最大的区别是集合内不允许出现重复元素,如果在定义时包含重复元素,会自动去重. 集合是无序的,集合中的元素必须是不可变类型.集合可以作为字典的key. ...

  4. 8、python中的集合

    集合是python中无序.可变的数据结构.集合与字典类似,集合中的元素必须是可哈希的(等同于字典中的键),也就是说集合中的元素是唯一.不可变的数据类型.这里前面说集合可变,后面又说集合中的元素不可变是 ...

  5. 14.python中的集合

    什么是集合?正如其字面的意思,一堆东西集中合并到一起.乍一听貌似和容器没什么差别,嗯,好吧,集合也算是一种容器. 在学习这个容器有什么不同之前,先看看集合是如何创建的: a = set() #可变集合 ...

  6. python中的集合

    在python中,普通集合是可变数据类型 通过以下案例说明: >>> s = {1, 2, 3, 4} >>> id(s) 2108634636808 >&g ...

  7. python中的集合、元组和布尔

    #元组,元组跟列表一样,只不过列表可读可写,而元组一般用来只读,不修改#python中不允许修改元组的数据,也包括不能删除其中的元素. t1 = ('a','b','c','d','s','a') & ...

  8. 图片哈希概论及python中如何实现对比两张相似的图片

    Google 以图搜图的原理,其中的获取图片 hash 值的方法就是 AHash. 每张图片都可以通过某种算法得到一个 hash 值,称为图片指纹,两张指纹相近的图片可以认为是相似图片. 以图搜图的原 ...

  9. 哈希表,Java中的hashCode

    哈希表: 将我们所需的键通过哈希函数转换索引,然后存储在一个数组中. 哈希表是时间和空间之间的平衡,体现空间换时间的算法思想(联想到预加载,缓存等,有时候多存储,预处理缓存一些东西,带来时间复杂度的改 ...

  10. Python 中的集合 --set

    前言 在Python中,我们用[]来表示列表list,用()来表示元组tuple,那{}呢?{}不光可用来定义字典dict,还可以用来表示集合set. 集合 set 集合(set)是一个无序的不重复元 ...

随机推荐

  1. Qt音视频开发4-vlc读取和控制

    一.前言 vlc本身是个全功能的很牛逼的播放器,你能够想到的播放的功能他都有,比如获取视频文件的长度.唱片的封面.当前播放进度.设置播放进度.声音控制.静音控制等,这些vlc都给你封装好了,你直接调用 ...

  2. Verilog3_组合逻辑电路

    组合逻辑电路设计方法 使用assign语句: 描述简单的组合逻辑电路 使用always块: 描述复杂的组合逻辑电路 要点: 只在一个always模块中对某一变量进行赋值: 将所有敏感变量列在敏感变量列 ...

  3. Solution -「JOISC 2017」「LOJ #2392」烟花棒

    \(\mathscr{Description}\)   Link.   有 \(n\) 个人站在数轴上,第从左往右第 \(i\) 个人的坐标是 \(x_i\),每个人手上有一支烟花棒,每支烟花棒能燃烧 ...

  4. Mac 下erlang及rabbitmq安装

    --------------------------------------- 1.首先,安装Homebrew安装Homebrew遇到的问题参考这个链接 2.安装erlang环境brew instal ...

  5. java-文件输入输出处理

    --------------------------------------------------- 1.File类 File类是IO包中唯一代表磁盘文件本身的对象,File类定义了一些与平台无关的 ...

  6. 微信小程序音频播放

    微信小程序音频播放 // 开启播放音频 startAudio(){ const innerAudioContext = uni.createInnerAudioContext();//创建并返回内部 ...

  7. Palworld幻兽帕鲁世界参数修改最佳实践(Ubuntu)

    本文为您介绍对Palworld游戏世界参数进行修改的最佳实践. 操作场景 本文以Ubuntu操作系统为例,为您介绍通过Palworld专有镜像一键部署Palworld服务器后对游戏世界参数进行修改的具 ...

  8. Windows的MySQL数据库升级(解压包方式)

    1.背景描述 原来的 MySQL 在安装时,是最新的稳定版本 5.7.33 . 经过一段时间后,在原来的 MySQL 版本中,发现存在漏洞. 因为 MySQL 的官方补丁,需要 Oracle 的 si ...

  9. Iceberg的Copy on Write和Merge On Read介绍

    一.默认的Copy on Write Copy no Write模式指的是在进行更新数据时,先将数据拷贝出来进行相应的更新,再替换掉原先的数据 二.Merge On Read读取时合并 在v2版本才支 ...

  10. JAVA运算符及实例

    JAVA语言支持以下运算符 优先级() 算数运算符:+,-,*,/,%,++,-- 实例1:  package operator; ​ public class Demo01 {     public ...