Python中文
首页
教程
问答
标签
搜索
登录
注册
遍历Python哈希表中的对象数组
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在尝试用Python创建自己的哈希表类。我有一个用于HashEntry的类(充当私有内部类)和一个用于HashTable本身的类。我正在为此使用numpy对象数组</p> <p>当我尝试实现我的“remove”方法时,我需要能够通过它的键在hashArray中找到hashEntry。这意味着我必须遍历hashArray中的hashEntry对象,并访问“entry”的每个“key”属性。当我运行代码时,我得到一个错误:</p> <blockquote> <p>AttributeError: 'numpy.ndarray' object has no attribute 'key'</p> </blockquote> <p>如何遍历numpy对象数组并访问它们的每个属性?还是我安排错了什么? 我的代码如下:</p> <pre><code>import numpy as np class HashEntry(): def __init__(self, inKey="", inValue=None): #sets default values if not specified self.key = inKey self.value = inValue self.state = 1 # 0 = never used, 1 = used, -1 = formerly used def __repr__(self): return (self.key + " -> " + str(self.value)) class DSAHashTable(): def __init__(self, tableSize): self.count = 0 self.actualSize = self.findNextPrime(tableSize) # Set table size self.hashArray = np.empty([self.actualSize, 1], dtype=object) #Initialize hashArray def put(self, inKey, inValue): newEntry = DSAHashEntry(inKey, inValue) idx = self.hashFunction(inKey) self.hashArray[idx] = newEntry self.count += 1 def remove(self, inKey): for entry in self.hashArray: if entry.key == inKey: np.delete(self.hashArray, inKey) self.count -= 1 table = DSAHashTable(150) table.put("a", "sock") table.put("b", "shoes") table.remove("a") </code></pre> <p>对于上下文,“findNextPrime”只是获取给定素数之后的下一个素数的类函数。(不相关)</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>编辑:我发现了这个问题。我的对象数组未满,因此有空元素。这意味着我的迭代器可以工作,但由于它通过null元素,因此会产生错误</p> <p>为了解决这个问题,我在for循环下面加了一个<em>if</em></p> <pre><code>if entry is not None: </code></pre> <p>希望这对将来的任何人都有帮助</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
7 回答
无法使用Django\u mssql\u后端迁移到外部hos
10 回答
无法使用Django&Python3.4连接到MySql
7 回答
无法使用Django+nginx上载媒体文件
8 回答
无法使用Django1.6导入名称模式
2 回答
无法使用Django1.7和mongodb登录管理站点
5 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
5 回答
无法使用Djangockedi验证CBV中的字段
1 回答
无法使用Djangocketditor上载图像(错误400)
4 回答
无法使用Djangocron进行函数调用
2 回答
无法使用Djangofiler djang上载文件
9 回答
无法使用Djangokronos
5 回答
无法使用Djangomssql provid
9 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
5 回答
无法使用Djangomssq迁移Django数据库
6 回答
无法使用Djangonox创建用户
5 回答
无法使用Djangopyodb从Django查询SQL Server
4 回答
无法使用Djangopython3ldap连接到ldap
2 回答
无法使用Djangoredis连接到redis
5 回答
无法使用Django中的FK创建新表
4 回答