返回顶部
首页 > 资讯 > 后端开发 > Python >python利用拉链法实现字典方法示例
  • 624
分享到

python利用拉链法实现字典方法示例

示例拉链字典 2022-06-04 18:06:46 624人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

前言 字典也叫散列表,最大的特点是通过key来查找其对应的值其时间复杂度是O(1),下面这篇文章就来给大家介绍介绍python利用拉链法实现字典的方法。 在Python中怎样用列表实现字典? 用列表

前言

字典也叫散列表,最大的特点是通过key来查找其对应的值其时间复杂度是O(1),下面这篇文章就来给大家介绍介绍python利用拉链法实现字典的方法。

在Python中怎样用列表实现字典?

用列表实现字典最大的问题就是解决hash冲突,如果在列表中通过计算不同的key得到相同的相同了位置,这时候应该怎么办?

最简单的办法就是使用拉链法.

查看图片

拉链法:就是在一个列表中每个位置再添加一个列表,这样就算是有hash冲突也能够存储进去,当选取的hash函数足够好,

num的数足够大,就能够保证列表中的每一个列表里面只有一个元素。根据key计算的元素所在的位置,然后来取值就能达

到O(1)的时间。

方法示例


class MyDict:
 def __init__(self, num=100): # 指定列表大小
  self._num = num
  self._lst = []
  for _ in range(self._num):
   self._lst.append([])

 def update(self, key, value): # 添加 key-value
  key_index = hash(key) % self._num
  for i, (k, v) in enumerate(self._lst[key_index]):
   if key == k:
    self._lst[key_index][i] = [key, value]
    break
  else:
   self._lst[key_index].append([key, value])

 def get(self, key): # 根据指定的 key 弹出值
  key_index = hash(key) % self._num
  for k, v in self._lst[key_index]:
   if k == key:
    return v
  else:
   raise KeyError('No such {} key'.fORMat(key))

 def pop(self, key): # 根据 key 弹出元素 并且删除
  key_index = hash(key) % self._num
  for i, (k, v) in enumerate(self._lst[key_index]):
   if k == key:
    result = v
    self._lst.pop(i)
    return result
  else:
   raise KeyError('No such {} key'.format(key))

 def __getitem__(self, key): # 可以通过下标来取值
  key_index = hash(key) % self._num
  for k, v in self._lst[key_index]:
   if k == key:
    return v
  else:
   raise KeyError('No such {} key'.format(key))

 def keys(self): # 取得所有的key
  for index in range(self._num):
   for k, v in self._lst[index]:
    yield k

 def values(self): # 取得所有的 value
  for index in range(self._num):
   for k, v in self._lst[index]:
    yield v

 def items(self): # 取得所有的条目
  for index in range(self._num):
   for item in self._lst[index]:
    yield item

通过key查到的时间,可见下图

查看图片

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对编程网的支持。

--结束END--

本文标题: python利用拉链法实现字典方法示例

本文链接: https://lsjlt.com/news/13535.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python利用拉链法实现字典方法示例
    前言 字典也叫散列表,最大的特点是通过key来查找其对应的值其时间复杂度是O(1),下面这篇文章就来给大家介绍介绍python利用拉链法实现字典的方法。 在Python中怎样用列表实现字典? 用列表...
    99+
    2022-06-04
    示例 拉链 字典
  • 利用python实现命令行有道词典的方法示例
    前言 由于一直用Linux系统,对于词典的支持特别不好,对于我这英语渣渣的人来说,当看英文文档就一直卡壳,之前用惯了有道词典,感觉很不错,虽然有网页版的但是对于全站英文的网页来说并不支持。索性自己实现一个,...
    99+
    2022-06-04
    示例 命令行 词典
  • 利用For循环遍历Python字典的三种方法实例
    目录前言方法 1:使用 For 循环 + 索引进行迭代方法 2:使用 .keys( ) + 索引进行迭代方法 3:使用 .items( ) 进行迭代进阶:遍历嵌套字典总结前言 在Py...
    99+
    2024-04-02
  • Python字典的常用方法实例分析
    这篇文章主要讲解了“Python字典的常用方法实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python字典的常用方法实例分析”吧!字典添加与修改方法利用 [ ] 处理看到 [] 我...
    99+
    2023-06-29
  • python3中dict(字典)的使用方法示例
    一、clear(清空字典内容) stu = { 'num1':'Tom', 'num2':'Lucy', 'num3':'Sam', } print(stu.clear()) #输出:N...
    99+
    2022-06-04
    示例 使用方法 字典
  • Python实现简单字典树的方法
    本文实例讲述了Python实现简单字典树的方法。分享给大家供大家参考,具体如下: #coding=utf8 """代码实现了最简单的字典树,只支持由小写字母组成的字符串。 在此代码基础上扩展一下,就可以...
    99+
    2022-06-04
    字典 简单 方法
  • 利用CSS实现文字渐变效果的方法和示例
    CSS是一种用于美化网页的技术标准,除了可以控制字体、颜色、布局等方面,还可以实现文字渐变效果。文字渐变效果可以为网页添加更加丰富多样的视觉效果,让文字更加吸引人。本文将介绍几种常用的利用CSS实现文字渐变的方法,并给出相应的代码示例。方法...
    99+
    2023-10-21
    CSS渐变效果 起始颜色和结束颜色。
  • 怎么在python中利用dict.item()方法遍历字典
    这篇文章将为大家详细讲解有关怎么在python中利用dict.item()方法遍历字典,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python可以做什么Python是一种编程语言,内置了许...
    99+
    2023-06-14
  • Python字典get()方法的实际应用
    首先,在较长一段Python的代码出现之前,回顾一些基础知识。第一段基础代码:---------------------------------dict = {'me':'1', 'occupy':'2'}dict['occupy']='9...
    99+
    2023-01-31
    字典 实际应用 方法
  • Python根据字典值对字典进行排序的三种方法实例
    目录一、实际场景及解决思路二、字典排序的三种实现方法2.1 使用列表解析方法实现字典排序2.2 使用zip方法实现字典排序2.3 使用传递sorted函数的key参数实现字典排序三、...
    99+
    2024-04-02
  • python解释器实现字典合并的方法
    这篇文章主要介绍python解释器实现字典合并的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、long(长整型)和float...
    99+
    2023-06-14
  • Python利用字典树实现猎词游戏
    目录解决策略什么是 Trie?创建 Trie 字典树单词测试总结猎词(word hunt)是一类很常见的游戏,给你一张字母组成的表,然后让你在这些字母中尽可能多的去寻找单词。这类游戏...
    99+
    2024-04-02
  • 利用Python实现RSA加密解密方法实例
    目录前言一、安装模块二、生成密钥对三、加密四、解密五、完整代码总结前言 加密技术在数据安全存储,数据传输中发挥着重要作用,能够保护用户隐私数据安全,防止信息窃取。RSA是一种非对称加...
    99+
    2024-04-02
  • Python实现拉格朗日插值法的示例详解
    目录概述拉格朗日插值法什么是插值法拉格朗日插值法的原理拉格朗日公式拉格朗日插值法的代码实现Python 进行拉格朗日插值的主要知识点Polyfit 函数Polyval 函数Linsp...
    99+
    2023-02-08
    Python实现拉格朗日插值法 Python拉格朗日插值法 Python插值法
  • Python交换字典键值对的四种方法实例
    目录前言一、当值唯一时1. 使用zip进行交换2. 使用for循环遍历交换3. 使用dict.items()交换二、当值不唯一时总结前言 在学习过程中发现有时候交换字典的键和值,会使...
    99+
    2022-12-08
    python交换字典的键和值 python字典键值对互换 python字典键值对互换
  • python字典中get()函数的基本用法实例
    目录前言1.get()函数利用键来获取值2.利用字典统计列表中元素出现次数补充:和dict[key]的区别总结前言 以下内容均为个人笔记,仅供学习参考使用,因内容均为自己实践经验所得...
    99+
    2024-04-02
  • 详解Python实现字典合并的四种方法
    目录1、用for循环把一个字典合并到另一个字典2、用dict(b, **a)方法构造一个新字典3、用b.update(a)的方法,更新字典4、把字典转换成列表合并后,再转换...
    99+
    2024-04-02
  • 利用python画一颗心的方法示例
    前言 Python一般使用Matplotlib制作统计图形,用它自己的说法是‘让简单的事情简单,让复杂的事情变得可能'。用它可以制作折线图,直方图,条形图,散点图,饼图,谱图等等你能想到的和想不到的统计图形...
    99+
    2022-06-04
    示例 画一 方法
  • python如何使用字典get方法
    这篇文章将为大家详细讲解有关python如何使用字典get方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。字典 get 方法关于“python如何使用字典get方法”这...
    99+
    2024-04-02
  • python字典中del()方法怎么用
    这篇文章将为大家详细讲解有关python字典中del()方法怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。del()定义 删除字典元素 举个栗子删除car字典的&q...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作