我正試圖用簡單的Python操作來實現矩陣類(沒有numpy等)。如何實現對所有子矩陣元素的添加?
這裏是其中的一部分:
class Matrix(list):
def __getitem__(self, item):
try:
return list.__getitem__(self, item)
except TypeError:
rows, cols = item
return [row[cols] for row in self[rows]]
它允許做這樣的事情:
m = Matrix([[i+j for j in [0,1,2,3]] for i in [0,4,8,12]])
print(m[0:2, 0:2])
will print: [[0, 1], [4, 5]]
我也希望能夠通過給定值增加/乘法子矩陣元素,如:
m[0:2, 0:2] += 1
print(m[0:2, 0:2])
should print: [[1, 2], [5, 6]]
目前尚不清楚應該採用哪種神奇方法才能使其發揮作用?
好吧,也許你可以分享一些代碼。因爲對於所有我想要的東西,我甚至在魔法方法出現之前就得到了'TypeError' –