“Bucket”在python中意味着什么?

What does “Bucket” mean in python?

我正在阅读Zed Shaw的书"学习Python的艰辛之路",目前我正在学习字典。

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

1
2
3
4
5
6
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

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

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

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

我搜索了堆栈溢出和网络,无法确定一个桶是什么...
我仍然是一个几乎是中级程序员的初学者,所以请注意这一点。

提前致谢。
- 艾伦


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

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

因此,您必须在"桶"中为单个表条目存储多个值,这可能是数组,链表等,因此可以为单个哈希表条目保存多个键值对。