首页 > 解决方案 > 列表中的值在 Python3 中被错误地解析

问题描述

由于某种原因,以下函数在两次不同的执行中显示不同的 q1 值。我使用 Pycharm,q1 中最后一个元素的值在它显示的两个输出中都不同

def rotation(mat):
    q1 = mat[0]
    q2 = [mat[i][-1] for i in range(len(mat))]
    print('\n\n', q1, q2)

    ####### This is where it goes wrong
    print('Actual:', q1[len(q1)-1], len(q1)-1)
    for i in range(0, len(q1)):
        mat[i][-1] = q1[i]
        print('Obtained:', q1[i], i)
    ##########################


    # display(mat)
    q1 = q2
    q2 = mat[-1][::-1]

    for i in range(len(mat[-1]), 0):
        mat[-1][i] = q1[len(mat)-i-1]

    # display(mat)
    q1 = q2
    q2 = [mat[i][0] for i in range(len(mat)-1, 0, -1)]

    for i in range(len(mat)-1, 0, -1):
        mat[i][0] = q1[len(mat)-i-1]

    # display(mat)
    q1 = q2

    for i in range(len(mat[0])-1 ):
        mat[0][i] = q1[i]

    print('\n\n')
    # display(mat)

更新:如果我注释掉我将值分配给 mat[i][-1] 的行,则该值打印正确。

标签: pythonpython-3.x

解决方案


推荐阅读