我想在python中实现哈希表。 由于哈希的基本思想是将值存储在索引i中,其中i = hash_function(key),我需要能够索引列表/数组来存储值。但由于python中的列表大小通过.append()扩展,因此hashList [i]语句会导致“列表分配索引超出范围”。python中的哈希表实现
有没有扭曲使用固定大小的列表和索引它通常?或者我应该使用一个ctype数组?
下面的代码可能看起来怎么样:
class Hash():
length = 1000
array = []
def __setitem__(self, key, value):
sum = 0
if key != None:
for letter in key:
sum = sum + ord(letter)
self.array[sum % self.length] = self.length
我认为这是“学院派” - 蟒蛇已经有一个美好的内置哈希表称为'dict' – mgilson
创建列表以'listSize'许多'None's开始。那么你可以考虑一个带有'None'的索引是一个空的哈希桶 – inspectorG4dget
@mgilson:根据用例,OP也可以考虑使用'set' – inspectorG4dget