【发布时间】:2018-04-21 20:59:33
【问题描述】:
我知道 Python 列表本质上是 C 数组,它们分配特定的顺序内存块;但是,这些内存块是否实际上存储了列表中的数据,或者它们只是指向内存中存储实际数据的另一个位置?
它是否可能取决于存储在列表中的对象的大小?因为您可以轻松地按顺序存储整数列表,但动态存储各种对象(包括自定义对象)会更加困难。
【问题讨论】:
-
没有。它们是 Py_Object 指针的 c 数组。
-
一个很好的解释here
-
此外,您无法真正按顺序存储
int对象列表,这些对象在Python 中具有可变大小。所以检查sys.getsizeof(0),然后是sys.getsizeof(1),最后是sys.getsizeof(10000000000000000)
标签: python python-3.x list memory