python中的2d list / matrix

时间:2017-09-08 13:08:31

标签: python list matrix 2d

我正在尝试在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列表/矩阵并访问和更改其中的元素?

2 个答案:

答案 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和其他适当的包,除非您需要为矩阵实现一些特殊的额外功能。