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
.
我正在构建一个网络抓取工具,将从四个不同网站检索到的数据存储到一个元组数组中。我稍后遍历元组并将整个批次保存为 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 and2**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 aslen()
) may raiseOverflowError
.