我是Python的新手,我正在尝试将元素添加到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
列表。
答案 0 :(得分:1)
对于三维列表,您可能希望在末尾附加元素:
space = []
space.append([])
space[i].append([])
space[i][j].append(<element>)
或者您可以使用numpy
:
import numpy as np
space = np.empty((len(self.xs), len(self.ys), len(self.zs)), dtype=object)