Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试使用python3转换矩阵_Python_Python 3.x_Matrix_Transpose - Fatal编程技术网

尝试使用python3转换矩阵

尝试使用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

我知道我在制作这个矩阵时遗漏了一些片段,但我似乎从一开始就找不到我的错误

我有三项任务

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):
    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”对象不支持项分配“将错误添加到问题中,并带有行号和完整的回溯。