我正在使用一段看起来像:
的itertools代码(非常感谢!)# Break down into selectable sub-groups by unit name
groups = {k: [b for b in blobs if b.Unit==k] for k in ['A','B','C','D','E','F']}
# Special treatment for unit F: expand to combination chunks of length 3
groups['F'] = combinations(groups['F'], 3)
# Create the list of all combinations
selected = list(product(*groups.values()))
问题是我上面的blobs
列表包含大约400个项目,这意味着生成的列表对象selected
将包含数万亿&数万亿种可能的组合(例如15x15x15x15x15x15x15x15x15)。我不是编程的新手,但我不熟悉使用大型数据集。我应该寻找什么样的硬件来处理像这样的itertools?有没有合理价格合理的机器可以处理这种类型的东西?我显然把我的Python技能超越了我可靠的iMac。 。 。
答案 0 :(得分:1)
如果您可以放弃列表的实现,那么代码将在任何计算机上按原样运行。这就是发电机的力量。