Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有将字符串的子字符串附加到列表的函数。当输入字符串很大时
MemoryError exception
被抛出。一维列表是否有任何长度限制?如果是,我该如何扩展它?
是的。有效内存。通过添加更多交换、添加更多 RAM 或迁移到具有更大内存限制的体系结构,为进程提供更多内存。
除了增加内存外,您还有其他几个选择。
buffer()
mmap()
您可以将数据写入文件而不是将其附加到列表中。
您是否偶然使用了 32 位的 Python 版本?使用 64 位地址空间时,假设您有足够的可用交换空间,您的进程应该在耗尽理论上可以访问的所有内存之前很久就停止了。在 32 位进程上,您只能访问大约 3 GB 的内存;按照今天的标准,没有那么多。