Python 3 中的最大元组数组大小是多少?

What is the maximum tuple array size in Python 3?

我正在构建一个网络抓取工具,将从四个不同网站检索到的数据存储到一个元组数组中。我稍后遍历元组并将整个批次保存为 CSV 和 Excel。 元组数组还是一般的数组,限于处理器的RAM/disc-space?

谢谢

我相信元组和列表受机器虚拟内存大小的限制,除非您使用的是 32 位系统,在这种情况下您会受到小字大小的限制。此外,列表会动态调整大小......我相信每次它们变得太小时大约有 12%,所以那里也有一点开销。

如果您担心自己会 运行 虚拟内存不足,那么改为写入一个或多个文件可能是个好主意。

根据doc,这是由sys.maxsize

给出的

sys.maxsize

An integer giving the maximum value a variable of type Py_ssize_t can take. It’s usually 2**31 - 1 on a 32-bit platform and 2**63 - 1 on a 64-bit platform.

有趣的是,这篇关于数据模型的 Python3 文档在 object.__len__ 下提供了更多实施细节。

CPython implementation detail: In CPython, the length is required to be at most sys.maxsize. If the length is larger than sys.maxsize some features (such as len()) may raise OverflowError.