Python是如何在内部存储列表的?

18 投票
1 回答
6324 浏览
提问于 2025-04-15 12:43

在Python中,列表是怎么存储的呢?它是用数组吗?还是链表?或者是别的什么东西?

或者说,解释器会根据列表的长度等信息来猜测最合适的存储结构吗?

如果这个问题跟具体的实现有关,那经典的CPython又是怎样的呢?

1 个回答

32

来自 核心Python容器:内部原理
列表的实现方式:
使用固定长度的指针数组
* 当数组需要变大或变小时,会调用 realloc() 函数,如果需要的话,会把所有的项目复制到新的空间里
源代码可以查看: Include/listobject.hObjects/listobject.c
顺便提一下: 这里有个视频

撰写回答