繁体   English   中英

Python列表与所有组合的内存错误

[英]Python list of lists with all combinations memoryerror

我想用其他三个列表的所有组合组成一个列表。 xlijst2有355个项目,ylijst2有35个项目,而zlijst2有420个项目。 这是我的代码:

alles = [xlijst2, ylijst2, zlijst2]
lijstje = list(itertools.product(*alles))

当我运行它时,我得到一个MemoryError。 有某种解决方法吗?

是的,解决方法是使用itertools返回的generator ,而不将其强制转换为显式列表:

lijstje = itertools.product(*alles)

从那里,您可以一个接一个地迭代组合。

for elt in lijstje:
    ...do something()

这有太多结果,以适应在RAM中。 您将不得不将其写入文件。 不过,我应该警告您-这不会是一小部分。

with open("values.txt", "w") as f:
    for value in itertools.product(*alles):
        f.write(", ".join(value) + "\n")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM