为什么这7项命令只消耗368个字节?

时间:2019-04-30 18:15:22

标签: python

深入阅读后,所有文档都导致陈述关于字典的两件事:

  • 它们实例化的容量足以容纳'8'个项目
  • 它们隐式调整为全尺寸的2/3(50,000项以下为4倍,高于2倍以上)

如果是这种情况,为什么这个字典仅消耗368个字节的RAM,而一个空字典占用240个字节,不是应该将其大小调整为4倍,例如:960字节吗?

    >>> getsizeof(dict(a=1,b=2,c=3,d=4,e=5,f=6,g=7))
    368
    >>> getsizeof(dict(a=1,b=2,c=3))
    240

我是误会还是误解了这里的核心内容? 关于python 3.7的此信息是否有所改变?

1 个答案:

答案 0 :(得分:5)

import sys
dictt=dict()
array=[]
for i in range(0,1000):
    dictt[i]=i
    array.append(sys.getsizeof(dictt))
print(array)

numberarray=[]
for i in range(1,1001):
    numberarray.append(i)

import matplotlib.pyplot as plt
plt.plot(numberarray,array)
plt.ylabel('memory')
plt.xlabel("items")
plt.show()

enter image description here

现在可视化该问题很有帮助。你有一个很好的辩论话题。 enter image description here

您应该参考: http://www.jessicayung.com/how-python-implements-dictionaries/