我使用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种不同的方法,而不是一种方法,计算点的顺序无关紧要)
答案 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)