用户:
虐心工作间查看:0 回复:0 评论:0 创建时间:2020-10-03T12:45:35
闲 得 无 聊 做 的 一 个 东 西 , 画 了 一 个 小 时 做 出 来 才 发 现 p y t h o n 自 带 二 维 列 表 功 能 ( 想 哭 … … )
class Matrix:
'''矩阵'''
mtl = []
rows = 0
def __init__(self, matrixlist, rows):
if(len(matrixlist) // rows == len(matrixlist) / rows):
lines = len(matrixlist) // rows
self.rows = rows
self.mtl = matrixlist
else:
raise ValueError('矩阵列表解析出现空白')
def printm(self, between):
for i in range(len(self.mtl) // self.rows):
listm = [str(self.mtl[(i * self.rows) + j]) + between for j in range(self.rows)]
value = between.join(listm)
print(value)
#输出矩阵
def modify(self, tmi, content):
self.mtl[tmi] = content
#修改矩阵中的元素
def modifylr(self, line, row, content):
self.mtl[line * self.rows + row] = content
#也是修改矩阵中的元素
def delmatrixrow(self, line):
for i in range(self.rows):
del self.mtl[line * self.rows + i]
#删除一行
def delmatrixline(self, row):
lines = len(self.mtl) // self.rows
for i in range(lines):
del self.mtl[i * (lines - 1) + row]
#删除一列
def appendmatrixrow(self, matrixlist):
if len(matrixlist) == self.rows:
self.mtl = self.mtl + matrixlist
else:
raise ValueError('矩阵列表每行的元素个数不匹配')
#添加一行到矩阵末尾
def appendmatrixline(self, matrixlist):
lines = len(self.mtl) // self.rows
if len(matrixlist) == lines:
for i in range(lines):
self.mtl.insert(((self.rows + 1) * (i + 1) - 1), matrixlist[i])
self.rows += 1
else:
raise ValueError('矩阵列表每列的元素个数不匹配')
#添加一列到矩阵末尾
if __name__ == '__main__':
mtl = [3, 5, 8, 6, 3, 4, 0, 6, 2]
matrix = Matrix(mtl, 3)
matrix.printm(' ')
print('\n')
matrix.modify(4, 1)
matrix.printm(' ')
print('\n')
matrix.modifylr(0, 1, 10)
matrix.modifylr(2, 0, 4)
matrix.printm(' ')
print('\n')
matrix.appendmatrixrow([4, 3, 7])
matrix.printm(' ')
print('\n')
matrix.appendmatrixline([3, 1, 9, 0])
matrix.printm(' ')
print('\n')