什么" Bucket"在python中意味着什么?

时间:2016-04-12 14:29:53

标签: python python-2.7 python-3.x dictionary hashmap

我正在阅读这本书" 以艰难的方式学习Python "作者:Zed Shaw,目前我正在学习字典。

在其中一个练习中,他创建了一个hashmap.py模块。

def new(num_buckets=256):
    """Intializes a Map with a given number of buckets"""
    aMap = []
    for i in range(0, num_buckets):
        aMap.append([])
    return aMap

这是他创造的第一个功能。我不知道他刚才做了什么我失去了轨道,(他声称如果你只是继续复制并试图理解它最终会开始有意义的代码)所以现在我试图通过谷歌搜索来剖析代码看着论坛。无论如何,是什么?是某种程序员胡言乱语还是有意义?该名称几乎出现在他创建的每个函数中。

这是他用桶创建的另一个功能。

def get_bucket(aMap,key):
    bucket_id = hash_key(aMap,key)
    return aMap[bucket_id]

我搜索了堆栈溢出和网络,并且无法确定存储桶的确切答案... 我还是一个几乎是中级程序员的初学者,所以请注意这一点。

提前致谢。 - 艾伦

1 个答案:

答案 0 :(得分:2)

使用哈希,您可以将数据存储在键值对中。

每个密钥都可以动态添加,并且必须在内部存储在某种表中。但由于此类条目的数量有限,因此多个键可映射到单个条目。

因此,您必须为“#bucket”中的单个表条目存储多个值。它可以是一个数组,链表等,因此可以为一个哈希表条目保存多个键值对。