首页 > 解决方案 > Python 无列表大小

问题描述

我只是在检查 Python 3 中某些数据类型的大小,我观察到了这一点。

import sys

val = None
print(sys.getsizeof(val))

输出是16符合预期。

我尝试列出 1000 个位置的列表,None并且我预计大小会16*1000 = 16000更大。但我得到的结果不一样。

import sys

val = [None]*1000

print(sys.getsizeof(val))

输出是8064. 几乎是我预期的一半大小。

这是什么原因。?为什么分配的内存少。?

标签: pythonpython-3.x

解决方案


import sys

val = None

print(sys.getsizeof(val))

Answer:

16

val = []

print(sys.getsizeof(val))

Answer: 

72

val = [None]

print(sys.getsizeof(val))

Answer:

80

so [None]*1000 = 1000* 8 + 72 = 8072

注意:字节数可能因环境而异


推荐阅读