当所有插槽都填入Python字典时会发生什么?

时间:2019-04-05 23:31:56

标签: python dictionary data-structures hash

我想知道当所有插槽都填入Python字典时会发生什么情况。

根据this Answer,python字典使用开放式寻址,并且它们也用8个插槽初始化。

我猜想在所有8个槽位都填满之后,将创建一个具有更多槽位的新字典,并且所有条目都会重新填充并移到那里

为了对此进行测试,我编写了以下代码:

dict={}

print(id(dict))
dict['A']=1
dict['B']=2
dict['C']=3
dict['D']=4
print(id(dict))
dict['E']=5
dict['F']=6
dict['G']=7
dict['H']=8
print(id(dict))
dict['I']=9
print(id(dict))

但是我看到字典的ID在进入第9个条目后并没有改变:

140055316586712
140055316586712
140055316586712
140055316586712

我正在解释结果吗?由此推断出字典并没有动态增加,但是如果初始化时只有8个插槽怎么办?

0 个答案:

没有答案