我想生成相对较大数量的数组的笛卡尔积以跨越高维网格。由于高维度的限制,无法将笛卡尔积计算结果存储在内存中,而必须写入硬盘。因此,我需要在生成中间结果时访问它们。 我迄今为止所做的是:
for x in xrange(0, 10):
for y in xrange(0, 10):
for z in xrange(0, 10):
writeToHdd(x,y,z)
除了非常麻烦外,它还不可扩展(即需要编写与维度数量相同的循环)。我尝试使用这里提出的解决方案,但那是一种递归解决方案,因此很难在生成结果时立即获取结果。除了每个维度都有一个硬编码循环之外,是否有其他“简洁”的方法来做到这一点?