我想列出包含其他三个列表的所有组合的列表。 xlijst2有355件商品,ylijst2有35件商品en zlijst2有420件商品。这是我的代码:
alles = [xlijst2, ylijst2, zlijst2]
lijstje = list(itertools.product(*alles))
当我运行它时,我得到一个MemoryError。有某种解决方法吗?
答案 0 :(得分:3)
是的,解决方法是使用generator
返回itertools
,而不将其转换为明确的列表:
lijstje = itertools.product(*alles)
从那里,您可以逐个迭代这些组合。
for elt in lijstje:
...do something()
答案 1 :(得分:1)
方式有太多结果可以适应ram。您必须将其写入文件。我应该警告你 - 这不会是少数项目。
with open("values.txt", "w") as f:
for value in itertools.product(*alles):
f.write(", ".join(value) + "\n")