我试图找出 Python 集的内部负载因子是多少。对于使用负载因子为 0.66 (2/3) 的哈希表的字典来说。存储桶的数量从 8 开始,当插入第 6 个键时,存储桶的数量增加到 16 下表显示了存储桶的变化。
| 桶 | 转移 |
|---|---|
| 8 | 5 |
| 16 | 10 |
| 32 | 21 |
| 64 | 42 |
| 128 | 85 |
这可以通过以下 Python 代码看出,其中字典和集合的大小通过 getsizeof 方法显示:
import sys
d = {}
s = set()
for x in range(25):
d[x] = 1
s.add(x)
print(len(d), sys.getsizeof(d), sys.getsizeof(s))
Run Code Online (Sandbox Code Playgroud)
| 元素数量 | 用于字典的内存 | 用于集合的内存 |
|---|---|---|
| 1 | 第232章 | 216 |
| 2 | 第232章 | 216 |
| 3 | 第232章 | 216 |
| 4 | 第232章 | 216 |
| 5 | 第232章 | 728 |
| 6 | 360 | 728 |
| 7 | 360 | 728 |
| 8 | 360 | 728 |
| 9 | 360 | 728 |
| 10 | 360 … |