以下是我要看的内容:
In [1]: import sys
In [2]: sys.getsizeof(45)
Out[2]: 24
In [3]: sys.getsizeof([])
Out[3]: 72
In [4]: sys.getsizeof(range(1000))
Out[4]: 8072
Run Code Online (Sandbox Code Playgroud)
我知道int在Python中可以增长(可以变大24个字节)对象,它们存在于堆上,我知道为什么该对象可能非常大,但不仅仅是这些对象的集合列表?显然它不是,这里发生了什么?
这是对象的大小 - 不包括它包含的对象:
>>> d = range(10)
>>> sys.getsizeof(d)
152
>>> d[0] = 'text'
>>> sys.getsizeof(d)
152
>>> d
['text', 1, 2, 3, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)
在您的情况下,具有1000个元素的列表的大小是8072字节,但每个整数对象仍然是24字节.列表对象跟踪这些整数对象,但它们不包含在列表对象的大小中.
| 归档时间: |
|
| 查看次数: |
221 次 |
| 最近记录: |