我正在尝试在python中创建一个4x4矩阵类...
我的矩阵是这样创建的 -
class matrix:
self.matrix = [[0 for x in range(4)] for y in range(4)]
我试图访问此矩阵中的索引,例如 -
myMatrix = matrix()
print(myMatrix.matrix[0][0])
然而我收到错误
AttributeError: myMatrix instance has no attribute '__getItem__'
我试过在我的矩阵类中添加一个方法 -
def getValue(self, x, y):
return self.matrix[x][y]
但我收到错误的说法 TypeError:list indices必须是整数
即使我尝试了self.matrix [0] [0],它说它们必须是整数,关于如何在python中获得简单的2d列表/矩阵功能的任何想法?
我只是想创建一个4x4 2d列表/矩阵并访问和更改其中的元素?
答案 0 :(得分:1)
Yuo应首先使用__init__
方法初始化矩阵:
class matrix:
def __init__(self):
self.matrix = [[0 for x in range(4)] for y in range(4)]
myMatrix = matrix()
print(myMatrix.matrix[0][0]) # => 0
现在您可以创建getValue
,以便日后使用:
class matrix:
def __init__(self):
self.matrix = [[0 for x in range(4)] for y in range(4)]
def getValue(self, x, y):
return self.matrix[x][y]
myMatrix = matrix()
print(myMatrix.matrix[0][0]) # => 0
print(myMatrix.getValue(0, 0)) # => 0
答案 1 :(得分:0)
在__init__
方法中初始化矩阵,并定义如何在__getitem__
中按索引获取元素。
class matrix:
def __init__(self):
self.matrix = [[0 for x in range(4)] for y in range(4)]
def __getitem__(self, item):
return self.matrix[item]
m = matrix()
print(m[0][0]) # 0
但是,如前所述,您可以使用numpy
和其他适当的包,除非您需要为矩阵实现一些特殊的额外功能。