我想列出所有列表的组合列表,我使用itertools.product
来计算排列但我的计算机挂起无限期的时间,我可能会做错什么?列表python列表的排列
import itertools
#Lists of all the possible dimensions
upperchest_dim=range(32,52,1)
upperback_dim=range(32,52,1)
chest_dim=range(32,52,1)
waist_dim=range(32,52,1)
hip_dim=range(32,52,1)
bicep_dim=range(32,52,1)
elbow_dim=range(32,52,1)
thigh_dim=range(32,52,1)
knee_dim=range(32,52,1)
calf_dim=range(32,52,1)
height_dim=range(32,52,1)
#List of lists total
dimensions=[upperchest_dim,upperback_dim,chest_dim,waist_dim,hip_dim,bicep_dim,elbow_dim,thigh_dim,knee_dim,calf_dim,height_dim]
#Generate permutations of all the dimensions
print list(itertools.product(*dimensions))
list(itertools.product(*dimensions))
应该具有所有维度可能的所有唯一排列。
- 编辑: 我认为我做错了什么。我想要一个包含所有唯一维度的列表,例如[32,33,34,45,34,23,42,43,43,45,33]这是一个维度,结果不应该包含这个确切的维度再次列出,因为这代表一种身体类型。
然后将你的'list(itertools.product(* dimensions))嵌套' –
range(32, 52,1)是20个数字。你有11个。这意味着20 ** 11个组合,大约是2. * 10 ** 14。如果你使用int8(在这种情况下我猜可能),你使用每个数字1个字节。这意味着您需要2 * 10 ** 5 Gb的RAM来存储它。有些事告诉我你没那么多。 (这一切都假设我明白你的问题/代码) – usethedeathstar
好吧,那么我认为我做错了什么。我想要一个包含所有唯一维度的列表,例如[32,33,34,45,34,23,42,43,43,45,33]这是一个维度,结果不应包含此列表再次。我想我会有4400个这样的尺寸(20 * 11 * 20)。 Th – rajat