Python 列表能有多大?

151 投票
10 回答
233665 浏览
提问于 2025-04-15 11:33

在Python中,一个列表能有多大呢?我需要一个大约有12000个元素的列表。这样的话,我还能使用像排序这样的列表方法吗?

10 个回答

30

当然可以。实际上,你可以很容易地自己查看:

l = range(12000)
l = sorted(l, reverse=True)

在我的电脑上运行这些代码花费了:

real    0m0.036s
user    0m0.024s
sys  0m0.004s

不过,正如其他人所说的那样,数组越大,操作的速度就会越慢。

110

根据Python的文档

sys.maxsize

这是平台上支持的最大的正整数,具体来说,就是Py_ssize_t类型的最大值。因此,它也代表了列表、字符串、字典以及许多其他容器所能拥有的最大大小。

在我的电脑上(Linux x86_64):

>>> import sys
>>> print sys.maxsize
9223372036854775807
235

根据源代码,一个列表的最大大小是 PY_SSIZE_T_MAX/sizeof(PyObject*)

PY_SSIZE_T_MAXpyport.h中被定义为 ((size_t) -1)>>1

在普通的32位系统上,这个值是 (4294967295 / 2) / 4,也就是536870912。

所以在32位系统上,Python列表的最大元素数量是536,870,912个。

只要你的元素数量不超过这个值,所有列表的功能都应该能正常使用。

撰写回答