Python哈希表设计

Qua*_*han 6 python hash

我想在python中实现一个哈希表.在表上,类对象将与键值相关联.问题是我想使用键值来查找类的索引并更新它(当然这不是问题).但是如果我想使用类的特定值对表进行排序,我该怎么办?

例如,让我们考虑一下,我们有三个值:document_id,得分和排名.有一个类"文档",由"得分"和"等级"组成."document_id"将成为表格的关键.

我想使用密钥"document_id"更新表的各个条目的"得分".但是当完成分数的更新时,我想使用分数对列表/表进行排序,并基于更新的分数将等级值分配给"等级"变量.

有人可以给我一些指导方针,我该怎么办?或者我应该简单地把它列为一个清单?

表的最大项目数可能高达25000-30000.

谢谢.

Ned*_*der 21

Python的dict已经是一个哈希表.

doc_hash = {}
doc_hash[doc.id] = doc
Run Code Online (Sandbox Code Playgroud)

分配等级:

docs = sorted(doc_hash.itervalues(), key=operator.attrgetter('score'), reverse=True)
for i, doc in enumerate(docs):
    doc.rank = i
Run Code Online (Sandbox Code Playgroud)