什么是最快,最节省内存和最简洁的方法来计算3d范围的点

时间:2011-09-20 23:33:02

标签: python methods 3d range

我使用python 2.6和2.7处理了几个项目,计算3d空间中的位置,位置或向量,我已经看到了不同的方法来计算两个坐标之间的所有点。 例如,我经常看到这种类型的构造,使用xrange或range,来查找3维盒子中的所有点,

s = list()
for x in xrange(xmin,xmax):
    for y in xrange(ymin,ymax):
        for z in xrange(zmin,zmax):
            s.append((x,y,z))

那么,在3d范围内计算或迭代的内存效率最高,最简洁,最快的方法是什么?

(澄清一下,这是3种不同的方法,而不是一种方法,计算点的顺序无关紧要)

2 个答案:

答案 0 :(得分:2)

以下肯定更简洁,内存效率更高,我希望它比for循环更快,但我还没有测试过:

from itertools import product

list(product(xrange(xmin, xmax), xrange(ymin, ymax), xrange(zmin, zmaz)))

您可以使用地图保存几个字符:

list(product(*map(xrange, [xmin, ymin, zmin], [xmax, ymax, zmax])))

答案 1 :(得分:0)