擅长:python、mysql、java
<p>您有几种选择:</p>
<ul>
<li>切换到python3.6。在</li>
</ul>
<p>字典在3.6版本中有了很大的进步。速度更快,占用空间更小,默认订购,我肯定忘了什么。在</p>
<ul>
<li>获得更多的记忆。在</li>
</ul>
<p>很明显,你在一台不符合要求的机器上做了一些受内存限制的事情。买更多的RAM,或者租一个m4.XLargeAWS实例,或者其他什么。在</p>
<ul>
<li>重新定义问题。在</li>
</ul>
<p>您是否需要同时在内存中存储所有百万个项目?你是不是一下子就把它们都处理好了?几乎肯定不是。编写更聪明的算法,一次处理数据块,甚至一次处理项目。如果您使这个并发(<a href="https://www.youtube.com/watch?v=cN_DpYBzKso" rel="nofollow noreferrer">not necessarily parallel</a>),大多数等待时间将是IO,并且可以很容易地在Python中进行线程化。在</p>
<p>尝试使用生成器表达式和生成器。它们的内存使用量很小。在</p>
<ul>
<li>使用数据库</li>
</ul>
<p>数据库是专门用来解决这个问题的。编写一个小的导入程序将数据放入MySQL或MongoDB中,然后用SQL表达您的问题。在</p>