包含所有内存组合的Python列表

2024-03-29 14:35:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把其他三张单子的所有组合列成一张单子。xlijst2有355项,ylijst2有35项,而zlijst2有420项。这是我的密码:

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

当我运行它时,我得到了一个内存错误。有什么解决办法吗?你知道吗


Tags: 内存密码错误productlist单子itertools解决办法
2条回答

有方法太多的结果,这不适合ram。你必须把它写进一个文件。不过,我要警告你,这不是一个小数目的项目。你知道吗

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

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

lijstje = itertools.product(*alles)

从那里,你可以一个接一个地迭代组合。你知道吗

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

相关问题 更多 >