[英]2d list / matrix in python
我正在尝试在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:列表索引必须为整数
即使当我尝试self.matrix [0] [0]时,它说它们必须是整数,关于如何在python中获得简单的2d列表/矩阵功能的任何想法吗?
我只希望能够创建4x4 2d列表/矩阵并访问和更改其中的元素?
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
使用__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
和其他适当的包。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.