为什么 Python 需要两个存储块

Ras*_*yak 0 python memory-management list python-3.x

为什么 Python 中的 list 需要两个存储块?

列表存储在两个内存块中(一个是固定大小的,另一个是可变大小的用于存储数据)

是不是因为一个块存储根地址,另一个是跟踪列表的动态变化?

use*_*ica 6

将列表拆分为固定大小的元数据头和可变大小的数据缓冲区,可以重新分配数据缓冲区,而不会使其他代码持有的指针无效,因为其他代码仅持有指向元数据头的指针。