大列表生成内存管理

问题描述 投票:0回答:1
import itertools
Num = 11

base = list(range(1,Num+1))

Permutations = list(itertools.permutations(base))

我在尝试运行此程序时遇到内存错误。实际上,我只需要生成1st(Num-1)!排列,但我不确定如何操作(因此,如果Num = 7,我将需要生成前6个!= 720排列)。但理想情况下,我希望能够为明显更高的Num值生成排列,因此任何建议都很好[]

import itertools Num = 11 base = list(range(1,Num + 1))排列= list(itertools.permutations(base))我在尝试运行此程序时遇到内存错误。实际上,我只需要生成第一个(...

python memory
1个回答
-1
投票

通常,您将很难将排列存储在内存中。它们只是增长太快。有11种阶乘方式可以置换11个数字的列表;这大约是4000万个元素。

© www.soinside.com 2019 - 2024. All rights reserved.