尝试使用python3转换矩阵
我知道我在制作这个矩阵时遗漏了一些片段,但我似乎从一开始就找不到我的错误 我有三项任务 1) 显示空矩阵的外观。 2) 显示原始矩阵(4x3)。 3) 然后将矩阵转换为3x4尝试使用python3转换矩阵,python,python-3.x,matrix,transpose,Python,Python 3.x,Matrix,Transpose,我知道我在制作这个矩阵时遗漏了一些片段,但我似乎从一开始就找不到我的错误 我有三项任务 1) 显示空矩阵的外观。 2) 显示原始矩阵(4x3)。 3) 然后将矩阵转换为3x4 import sys from scanner import * def createMatrix(size): if size == 0: return [] else: return [0] + createMatrix(size -1) def printGrid(gridlist
import sys
from scanner import *
def createMatrix(size):
if size == 0: return []
else:
return [0] + createMatrix(size -1)
def printGrid(gridlist):
for row in gridlist:
print (str(row)+"\n")
def nrows(g):
return len(g)
def ncols(g):
return len(g[0])
def printMatrix(g):
for i in range(0,nrows,1):
for j in range(0,ncols,1):
print("The original matrix is:",g[i][j])
print('')
print('')
def printMatrixTranspose(g):
for j in range(0,ncols,1):
for i in range(0,nrows,1):
print("The transposed matrix is:",g[i][j])
print('')
print('')
def readInput(filename,grid):
s = Scanner(filename)
r = s.readtoken()
while r != "":
r = int(r)
c = s.readint()
v = s.readint()
grid[r][c]=v
r = s.readtoken()
s.close()
def main():
grid = createMatrix(5)
for i in range(4):
grid[i] = createMatrix(5)
readInput(sys.argv[1],grid)
printMatrixTranspose(g)
main()
我一直收到这个错误,不知道如何修复它
Traceback (most recent call last):
File "transpose.py", line 51, in <module>
main()
File "transpose.py", line 48, in main
readInput(sys.argv[1],grid)
File "transpose.py", line 37, in readInput
r = int(r)
TypeError: int() argument must be a string or a number, not 'method'
回溯(最近一次呼叫最后一次):
文件“transpose.py”,第51行,在
main()
文件“transpose.py”,第48行,在main中
readInput(sys.argv[1],网格)
readInput中第37行的文件“transpose.py”
r=int(r)
TypeError:int()参数必须是字符串或数字,而不是“方法”
如果要将矩阵作为列表列表进行管理,则使用列表作为函数的参数进行转换非常简单,如下所示:
x = [[1,2,3],[4,5,6],[7,8,9],[10,11,12]]
print x
print map(list,zip(*x))
我们在zip的输出中使用函数,因为zip返回元组列表,而不是列表列表
上述印刷品:
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
[[1, 4, 7, 10], [2, 5, 8, 11], [3, 6, 9, 12]]
编辑:该错误表明您添加的代码与您正在运行的代码不匹配。检查您的文件是否保存,并验证是否有括号()
每次调用readtoken
后,我已经创建了一个文件,我必须在命令行中导入,我的主要目标是从4x3到3x4。示例:“原始”“1 2 3 4”“5 6 7 8”“9 10 11 12”“当程序运行时,它应该创建:'1 4 7 10”“2 5 8 11”“3 6 9 12'此外,现在我收到一个“类型错误:'int'对象不支持项目分配”将错误添加到问题中,并带有行号和完整回溯。“回溯(最近的调用):文件”transpose.py”,第51行,在main()文件“transpose.py”中,第48行,在主readInput(sys.argv[1],grid)文件“transpose.py”中,第40行,在readInput grid[r][c]=v TypeError中:“int”对象不支持项分配“将错误添加到问题中,并带有行号和完整的回溯。