[英]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.