0
我是新來的Python,我試圖將元素添加到3D名單。添加元素爲3D陣列中的蟒蛇
def getHoughSpace(self):
space = [[[]]]
for i in range(0, len(self.xs)):
rho = self.getRho(self.xs[i], self.ys[i], self.zs[i])
space.append([Cell(rho, 0)])
for j in range(0, len(self.ys)):
theta = self.getTheta(self.xs[j], self.ys[j], self.zs[j])
space[i].append([Cell(theta, 0)])
for k in range(0, len(self.zs)):
phi = self.getPhi(self.xs[k], self.ys[k])
space[i][j].append([Cell(phi, 0)]) # error happens here
然而,當i=1
,j=0
和k=0
,我的程序崩潰與錯誤:
AttributeError: Cell instance has no attribute 'append'
這究竟是爲什麼?我怎樣才能獲得通過i=0
,j=0
和k=0
而不當i=1
?顯然,我正在訪問一個單元格space[i][j]
,但我想訪問Cells
列表。
- 有趣的是,如果我註釋掉錯誤行,它會運行。那麼爲什麼這個問題只發生在第三維?
我使用numpy的得到它的工作。我會注意到你不能再使用append了,你已經分配了一個數組。你必須使用'space [i] [j] [k] = Cell(phi,0)'。 –
@TrevorHutto問題,與原來的程序是:'space.append([細胞(RHO,0)])'這擾亂列表的維數,如果打印它,你可以看到另一個'list'被添加作爲元件而不是'列表清單'。 –