2011-09-20 69 views
-2

我已經與幾個項目使用Python 2.6和2.7計算位置,位置或矢量在三維空間,我看到了不同的方法來計算兩個座標之間的所有點。 例如,我經常看到這種類型的構造,即使用的xrange或範圍,找出所有的點在3維中,什麼是最快,效率最高的內存和最簡潔的方法來計算3d範圍的點

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)) 

那麼,什麼是最內存高效,最簡潔,最快速計算或迭代三維點範圍的方法?

(爲了澄清,這3種不同的方法,而不是一個,而計算出的點的順序並不重要)

+0

最快的方法是使用C當然。 – brc

+2

這聽起來像一個代碼高爾夫球/投票類型的問題,所以它是脫離主題。 – agf

+0

您在此提出6個問題。請一次問一個。 –

回答

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]))) 
+4

或'x(xmin,xmax)中的x(ymin,ymax)中的y [xmin,ymax]中的x [zmin,zmax]中的[[(x,y,z)]''如果不是整個' '東西。 – agf

相關問題