【问题标题】:Transpose of a matrix showing same results as original显示与原始结果相同的矩阵的转置
【发布时间】:2022-07-06 17:48:10
【问题描述】:

我正在尝试转置矩阵但得到相同的矩阵,这似乎每次都发生,更令人困惑的是列表的元素被交换但不是在这个实例上。

问题是我看不到最终结果的变化,因为在循环中进行了 nXn 次交换。

inp = int(input())
mat = []
for i in range(inp):
    submat = list(map(int,input().split(',')))
    mat.append(submat)

print(mat)   
for i in range(len(mat)):
    for j in range(len(mat[0])):
        mat[i][j],mat[j][i] = mat[j][i],mat[i][j]
        
print(mat)
    

【问题讨论】:

    标签: python matrix


    【解决方案1】:

    您只需要循环上三角矩阵,即从0,1...len(mat) 行和row+1, row+2, row+3..len(mat[0])

    # your code goes here
    inp = int(input())
    mat = []
    for i in range(inp):
        submat = list(map(int,input().split(',')))
        mat.append(submat)
    
    print(mat)   
    for i in range(len(mat)):
        for j in range(i+1, len(mat[0])):
            mat[i][j],mat[j][i] = mat[j][i],mat[i][j]
            
    

    【讨论】:

    • 解释得很清楚。点赞。在这个伟大的平台上运行代码对 OP 很有帮助 - pythontutor.com
    【解决方案2】:

    当然,您将每个 i, j 交换两次(i, j 和之后的 j, i)。

    【讨论】:

      猜你喜欢
      • 2020-08-11
      • 1970-01-01
      • 1970-01-01
      • 2020-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多