python中列表大小的扩展

python中列表大小的扩展,python,python-2.7,Python,Python 2.7,我有一个将字符串的子字符串附加到列表的函数。当输入字符串较大时 内存错误异常 被抛出。一维列表有长度限制吗?如果有,我如何扩展它?有。可用内存。通过添加更多交换、添加更多RAM或移动到具有更大内存限制的体系结构,为进程提供更多可用内存。是。可用内存。通过添加更多交换、添加更多RAM或移动到内存限制更大的体系结构,为进程提供更多内存。您可以将数据写入文件,而不是将其附加到列表。您可以将数据写入文件,而不是将其附加到列表。除了增加内存之外,你还有其他几种选择 尝试更改算法,以减少内存占用。例如,如果

我有一个将字符串的子字符串附加到列表的函数。当输入字符串较大时

内存错误异常


被抛出。一维列表有长度限制吗?如果有,我如何扩展它?

有。可用内存。通过添加更多交换、添加更多RAM或移动到具有更大内存限制的体系结构,为进程提供更多可用内存。

是。可用内存。通过添加更多交换、添加更多RAM或移动到内存限制更大的体系结构,为进程提供更多内存。

您可以将数据写入文件,而不是将其附加到列表。

您可以将数据写入文件,而不是将其附加到列表。

除了增加内存之外,你还有其他几种选择

尝试更改算法,以减少内存占用。例如,如果不需要同时使用所有这些子字符串,可以使用生成器函数或生成器表达式连续创建和使用它们。 如果你需要它们,试着把大字符串保存在内存中,然后使用它们。 如果大字符串来自文件,您可以将此文件或其一部分放入您的地址空间。
除了增加内存外,您还有其他几种选择

尝试更改算法,以减少内存占用。例如,如果不需要同时使用所有这些子字符串,可以使用生成器函数或生成器表达式连续创建和使用它们。 如果你需要它们,试着把大字符串保存在内存中,然后使用它们。 如果大字符串来自文件,您可以将此文件或其一部分放入您的地址空间。
您是否碰巧使用了32位python构建?当使用64位地址空间时,如果您有足够的可用交换空间,那么在耗尽理论上可以访问的所有内存之前,您的进程应该会停止很久。在32位进程上,您只能访问大约3 GB的内存;按照今天的标准,没有那么多。

您是否碰巧使用了32位的python构建?当使用64位地址空间时,如果您有足够的可用交换空间,那么在耗尽理论上可以访问的所有内存之前,您的进程应该会停止很久。在32位进程上,您只能访问大约3 GB的内存;按照今天的标准,没有那么多。

限制是sys.maxsize,但您还没有达到。您达到了计算机的每进程内存限制。如果您发现由于列表太大而导致内存不足,请尝试使用生成器。您的字符串一定很大。如前所述,查看生成器,但如何创建填充计算机内存的字符串?我不认为是字符串长度,如果他获得了所有的子字符串,那么对于长度为k的字符串,有nn+1/2+1子字符串。限制是sys.maxsize,但您没有达到它。您达到了计算机的每进程内存限制。如果您发现由于列表太大而导致内存不足,请尝试使用生成器。您的字符串一定很大。如前所述,查看生成器,但如何创建填充机器内存的字符串?我不认为是字符串长度,如果他得到所有子字符串,那么对于长度为k的字符串,有nn+1/2+1子字符串。