python - "Bucket"在python中是什么意思?

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

我正在阅读 Zed Shaw 所著的《Learn Python the Hard way”一书,目前我正在学习字典。

在其中一个练习中,他创建了一个 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]

我搜索了 stack-overflow 和网络,但无法找到关于什么是“bucket”的明确答案...... 我仍然是一个初学者,几乎是中级程序员,所以请注意这一点。

提前致谢。 - 艾伦

最佳答案

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

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

因此,您必须在“存储桶”中存储单个表条目的多个值,该“存储桶”可以是数组、链表等,因此可以为单个哈希表条目保存多个键值对.

关于python - "Bucket"在python中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36576318/

相关文章:

python - 自动评分器脚本 - 从文本文件读取键盘输入

python-3.x - TPU : double, 不支持的数据类型由输出 IteratorGetNext:0 引起

linux - Python DBus 返回空列表

Python:连接列表的所有连续子列表,直到满足条件

python - 如何使用 unicode_literals 在 python 2 和 3 中获得兼容的 type() 行为?

python-3.x - 在期望记录分隔符 ','时找到字段分隔符 '\n'

Python-从URL、里面的控制和特殊字符获取JSON

python - 在 Mac OS X 上运行 "python"和 "python2.7"有什么区别?

python - 为 API 访问生成签名 (Oauth 1.0)

python - 如何从 Python GAE 中检索到的谷歌云存储对象访问我的文件