最近在学习python, 学起来很不错,在我一个初学者的眼中,这是一门很好的脚本语言。无论学习者有没有编程经验,都可以很好的学习。当然,要想学好,做练习是必不可少的。一些简单的练习,我就不再说了。在这里,我想从学习新语言的同时,正好把忘了的数据结构好好补补。因此,现在我准备实现一个hashmap,只是完成最基础的功能。毕竟,本人也是菜鸟一个,如果写的有误,请指正,勿喷哈。希望与正在学习python的朋友共同学习,交流
下面是我的代码实现
# -*- coding: cp936 -*- #--------------------------------------------- # #author chile #version 1.0 #date 2014-01-11 #desc 使用hash实现一个映射容器 ,只有简单的实现 # # #--------------------------------------------- class entry: def __init__(self,key = None,val = None,_next = ''): self.before = None self.key = key self.value = val self.next = _next class hashmap(): def __init__(self,length = 16): self.len = length self.arr = self.initarr(length) self.entry = entry() def hashcode(self,key): return abs(hash(key)) % self.len def put(self,key,value): index = self.hashcode(key) root = self.arr[index] self.entry = entry(key = key,val = value) self.putentry(root, key) self.arr[index] = root def putentry(self,entry,key): if isinstance(entry.next,str): entry.next = self.entry else: self.putentry(entry.next, key) def get(self,key): index = self.hashcode(key) entry = self.arr[index] if isinstance(entry.next,str): return None return self.getentry(entry.next, key) def remove(self,key): index = self.hashcode(key) root = self.arr[index] if not isinstance(root.next,str): self.removeentry(root, key) def initarr(self,len): arr = [] for v in range(0,len): arr.append(entry()) return arr def getentry(self,entry,key): _key = entry.key if cmp(key,_key) == 0: return entry.value else: self.getentry(entry.next, key) def removeentry(self,entry,key): next = entry.next if cmp(next.key,key) == 0: entry.next = next.next else: self.removeentry(next,key) mymap = hashmap() mymap.put('2', 22) mymap.put('3', 'vals') mymap.put('5', 'val5s') mymap.put('4', 'val4s') mymap.put('6', 'val6s') mymap.put('12', 'va12l') mymap.put('13', 'va13ls') mymap.put('15', 'val15s') mymap.put('14', 'val14s') mymap.put('16', 'val16s') print mymap.get('3') print mymap.get('2') mymap.remove('4') print mymap.get('14')
相关推荐
此外,Python还有列表(list)、元组(tuple)、集合(set)和字典(dict)等复合数据类型,它们分别对应Java的ArrayList、数组、HashSet和HashMap。 在Python中,函数定义使用`def`关键字,函数可以作为返回值,...
在Python中实现布隆过滤器可以相对简单,但要确保正确的哈希函数和位数组大小的选择。一个简单的Python实现可以使用bitarray库和mmh3哈希函数库,如上述代码所示。在这个实现中,我们首先初始化一个大小为size的位数...
统计字符出现的次数 Java、Python、Shell、JavaScript 实现 Statistical Character Appearance Times in Java, Python, Shell, and JavaScript) 统计字符出现的次数是指在一个字符串中统计每个字符出现的次数,这...
5. 哈希表(HashMap):提供O(1)的查找效率,广泛用于实现关联数组、缓存、唯一性检查等。 6. 字符串处理:KMP算法、Boyer-Moore算法和Rabin-Karp算法用于字符串匹配;Trie树(字典树)用于高效地存储和查询字符串...
此外,Python 的 `None` 类型在 Java 中可能对应为 `null`,而 Python 中的列表和字典则需要转换为 Java 的 `ArrayList` 或 `HashMap`。 2. **语法结构的调整**:Python 使用缩进来表示代码块,而 Java 需要用花...
标题中的"Python库 | red-black-tree-mod-1.11.tar.gz"指的是一种基于Python实现的红黑树数据结构的库,版本为1.11,并被打包成tar.gz格式的压缩文件。红黑树是一种自平衡二叉查找树,它的设计目标是保证在进行插入...
在本项目中,“基于python+Java的疫情爬虫数据分类统计分析的设计与实现”是一个结合了两种编程语言的综合应用,旨在从网络上抓取疫情相关的数据,进行处理、分类和统计分析。该项目的核心目标是利用Python的爬虫...
此外,可能还会涉及文件操作、异常处理、数据结构(如栈、队列、堆、图)以及简单的算法实现。 对于Java,作业可能涵盖的内容有:基础语法(如变量、常量、运算符、流程控制)、类与对象(封装、继承、多态)、接口...
下面是一个简单的Java实现示例: ```java public class MultitonExample { private static Map, MultitonExample> instances = new HashMap(); // 私有构造函数 private MultitonExample(String key) { // ...
《安卓调用Python:JNI与PyBridge实现详解》 ...对于轻量级的Python功能,可能有其他更简单的解决方案,如使用纯Java或Kotlin实现。但在需要深度计算或者复杂逻辑的场景下,这种集成方式无疑提供了更多的可能性。
从【压缩包子文件的文件名称列表】"北大Java作业题"来看,这个文件很可能是包含了一系列的Java编程题目,每道题可能是一个独立的代码实现或者逻辑分析,涵盖不同的Java知识点。 以下是一些可能出现在这些作业中的...
8. **网络编程**:使用socket库实现简单的TCP/IP通信。 9. **单元测试**:了解unittest模块,编写和执行单元测试。 10. **数据类型高级操作**:列表推导式,字典推导式,生成器表达式,迭代器和生成器。 通过这...
JAVA作为面向对象的语言,提供了丰富的内置数据结构,如ArrayList、LinkedList、Stack、Queue、HashSet、HashMap等。学习JAVA数据结构,不仅可以理解其内部实现原理,还能学会如何在实际项目中高效利用这些工具。 ...
宏实现了类似于 Python 中的列表和哈希映射推导式,允许条件和嵌套推导式。Python 语法squares= [x*xforxinrange (10 )]even_squares= [x*xforxinrange (10 )ifx%2==0 ]squares_dict= {key :key*keyforkeyinrange ...
哈希表是一种高效的数据结构,它通过特定的哈希函数将键...例如,Python中的`dict`类型、Java的`HashMap`和C++的`std::unordered_map`都是哈希表的典型实现。理解哈希表的工作原理和优化策略对于提升程序性能至关重要。
private static final HashMap, PythonInterpreter> piMap = new HashMap(); public static JythonFactory getInstance() { return instance; } public Object getJavaObjectFromJythonFile(String ...
本文将介绍如何使用Python语言来实现这一过程,并解析获取相关数据的过程。 在开始编写代码之前,需要了解如何利用现有的空气质量数据接口。文章中提到了使用第三方提供的API接口进行数据查询的方式,这比直接爬取...
6. **深度学习入门**:使用TensorFlow、PyTorch等框架进行简单的神经网络训练。 ### 实际工作需求文档 **知识点概述:** 实际工作需求文档通常涉及以下几个方面: 1. **项目背景**:项目的起因、目的与预期目标...
下面是一个简单的 Java 实现示例,展示了如何设计和实现这个文件缓存系统: ```java import java.util.*; class FileInfo implements Comparable<FileInfo> { String name; int size; int accessCount; long ...
在JAVA中,除了基本数据类型外,还有ArrayList、LinkedList、HashMap等内置数据结构,它们提供了方便的操作接口,但理解其底层实现仍然是必要的。 Python则以其简洁的语法和强大的标准库受到许多初学者的喜爱。在...