返回顶部
首页 > 资讯 > 后端开发 > Python >python中HashMap的一个实现
  • 484
分享到

python中HashMap的一个实现

pythonHashMap 2023-01-31 04:01:01 484人浏览 安东尼

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

摘要

class LinearMap(object): def __init__(self): self.items = [] def add(self, k, v): self.items.

class LinearMap(object):

    def __init__(self):
        self.items = []

    def add(self, k, v):
        self.items.append((k, v))

    def get(self, k):
        for key, val in self.items:
            if key == k:
                return val
        raise KeyError


class BetterMap(object):

    def __init__(self, n=100):
        self.maps = []
        for i in range(n):
            self.maps.append(LinearMap())

    def find_map(self, k):
        index = hash(k) % len(self.maps)
        return self.maps[index]

    def add(self, k, v):
        m = self.find_map(k)
        m.add(k, v)

    def get(self, k):
        m = self.find_map(k)
        return m.get(k)


class HashMap(object):
    def __init__(self):
        self.maps = BetterMap(2)
        self.num = 0

    def get(self, k):
        return self.maps.get(k)

    def add(self, k, v):
        if self.num == len(self.maps.maps):
            self.resize()

        self.maps.add(k, v)
        self.num += 1

    def resize(self):
        new_map = BetterMap(self.num * 2)

        for m in self.maps.maps:
            for k, v in m.items:
                new_map.add(k, v)

        self.maps = new_map


def main(script):
    import string

    m = HashMap()
    s = string.ascii_lowercase

    for k, v in enumerate(s):
        m.add(k, v)

    for k in range(len(s)):
        print k, m.get(k)


if __name__ == '__main__':
    import sys
    main(*sys.argv)

--结束END--

本文标题: python中HashMap的一个实现

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

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

猜你喜欢
  • python中HashMap的一个实现
    class LinearMap(object): def __init__(self): self.items = [] def add(self, k, v): self.items....
    99+
    2023-01-31
    python HashMap
  • python实现一个简易hashmap
    ...
    99+
    2023-01-31
    简易 python hashmap
  • Java中HashMap中的一个坑
    目录前言问题展示原因分析解决方案LinkedHashMap 的魔力总结前言 最近公司的系统要增加一个新的列表展示功能,功能本身难度并不大,但遇到了一个很“奇怪&rdquo...
    99+
    2024-04-02
  • 如何利用HashMap实现一个遍历功能
    这篇文章给大家介绍如何利用HashMap实现一个遍历功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。map的几种遍历方式:Map< String, String> map&n...
    99+
    2023-05-31
    hashmap 遍历
  • 怎么在java中使用HashMap实现一个斗地主游戏
    本篇文章给大家分享的是有关怎么在java中使用HashMap实现一个斗地主游戏,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、准备牌:每张扑克牌牌由花色和数字两部分组成。可以...
    99+
    2023-06-06
  • HashMap红黑树入门(实现一个简单的红黑树)
    目录1.树结构入门1.1 什么是树?1.2 树结构常用术语1.3 二叉搜索树2.红黑树原理讲解2.1 红黑树的性质:2.2 红黑树案例分析3.手写红黑树4. HashMap底层的红黑...
    99+
    2024-04-02
  • 基于Java快速实现一个简单版的HashMap详解
    目录1.示例图2.分析需求3.代码实现3.运行结果简单实现一个底层数据结构为数组 + 链表的HashMap,不考虑链表长度超过8个时变为红黑树的情况。 1.示例图 2.分析需求 p...
    99+
    2023-02-08
    Java实现HashMap Java HashMap
  • HashMap实现保存两个key相同的数据
    HashMap如何保存两个key相同的数据 最近一个朋友去面试了,面试官问了一个关于HashMap的问题:HashMap如何保存两个key相同的数据? 准确来说,应该是Map中如何保...
    99+
    2024-04-02
  • Android中实现HashMap排序的方法
    HashMap排序是数据结构与算法中常见的一种排序算法。本文即以Android平台为例来实现该算法。 具体代码如下: public static void main(Stri...
    99+
    2022-06-06
    方法 hashmap Android
  • python实现一个简单的dnspod
    实现一个简单的dnspod解析api:dnspod api地址:https://www.dnspod.cn/docs/records.html#record-create #!/usr/bin/env python # -*- coding...
    99+
    2023-01-31
    简单 python dnspod
  • Python中怎么实现一个个税计算器
    Python中怎么实现一个个税计算器,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。计税方法科普个税方法这里需要知道的知识点:个税起征点调到 5000;累积预扣法:本期应预扣...
    99+
    2023-06-16
  • Python中怎么实现一个感知器
    这篇文章将为大家详细讲解有关Python中怎么实现一个感知器,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。什么是感知器生物神经元示意图感知器的概念类似于大脑基本处理单元神经元的工作原理。神经...
    99+
    2023-06-15
  • Python中实现一个LZ77压缩算法
    这篇文章给大家介绍Python中实现一个LZ77压缩算法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。原理介绍:首先介绍几个专业术语。lookahead buffer(不知道怎么用中文表述,暂时称为待编码区):等待编码...
    99+
    2023-06-17
  • Python中怎么实现一个透视表
    本篇文章为大家展示了Python中怎么实现一个透视表,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 数据为帮助大家更好地理解,在讲解如何使用pivot_table( )实现透视表前,我们先导入示...
    99+
    2023-06-16
  • Python中怎么实现一个HTTP服务
    Python中怎么实现一个HTTP服务,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。实际上来说,这是一个可以用来共享文件的非常有用的方式。实现一个微型的HTTP...
    99+
    2023-06-17
  • 用Python实现一个简单的WebSoc
    ubuntu下python2.76 windows python 2.79, chrome37 firefox35通过 代码是在别人(cddn有人提问)基础上改的, 主要改动了parsedata和sendmessage这2个函数. 改代码...
    99+
    2023-01-31
    简单 Python WebSoc
  • 用Python实现一个简易的WebSoc
    </pre><pre name="code" class="python">#coding=utf-8 from threading import Thread import struct import time...
    99+
    2023-01-31
    简易 Python WebSoc
  • python如何实现一个ORM
    这篇文章给大家分享的是有关python如何实现一个ORM的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。python有哪些常用库python常用的库:1.requesuts;2.scrapy;3.pillow;4....
    99+
    2023-06-14
  • 用python实现一个转盘
    #抽奖 面向对象版本 import tkinter import time import threading class choujiang: #初始化魔术方法 def __init__(self): ...
    99+
    2023-01-31
    转盘 python
  • HashMap的底层实现原理
    这篇文章主要介绍“HashMap的底层实现原理”,在日常操作中,相信很多人在HashMap的底层实现原理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HashMap的底层实现原理”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作