簡體   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