繁体   English   中英

Python中的二维列表/矩阵

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM