簡體   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