问题引出
import sys
name = ["alpha", "beta", "gamma"]
age = [10, 20, 30]
size1 = sys.getsizeof(name) + sys.getsizeof(name)
print(size1)
stu = {"alpha":10, "beta":20, "gamma":30 }
size2 = sys.getsizeof(stu)
print(size2)
运行结果:
176
240
list数据结构
list的实现是一个可扩展的顺序表,表里除了表头+分配的slot的个数(固定大小)之外,还存在一个数组,数组元素是指针。
如下图所示:
因此,我们先创建一个空的list,可获取固定部分的大小。
import sys
l = []
print(sys.getsizeof(l))
64
l.append(10)
print(sys.getsizeof(l))
96
可见,list的固定部分大小为64
此时:slot的个数为0,当append一个元素时,按照resize规则(