首页 > 解决方案 > 我写了这段代码,但我的输出不是应该是 2D 的,我不知道如何修复它

问题描述

我完全编写了我的代码,但我没有从问题中得到预期的输出。当我输入我的值时,由于某种原因它们不在二维列表中。

功能:

def matrix_rotate_right(a):

    b = []

    for i in range(len(a[0])):
        b.append([])
        for j in range(len(a) - 1, -1, -1):
            b[i].append(a[j][i])

    return b

t01.py

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
b = matrix_rotate_right(a)
print(b)

问题:

Write and test the following function:

def matrix_rotate_right(a):
    """
    -------------------------------------------------------
    Returns a copy of a 2D matrix rotated to the right.
    a must be unchanged.
    Use: b = matrix_rotate_right(a)
    -------------------------------------------------------
    Parameters:
        a - a 2D list of values (2d list of int/float)
    Returns:
        b - the rotated 2D list of values (2D list of int/float)
    -------------------------------------------------------
    """
Add this function to the PyDev module functions.py. Test it from t01.py.

示例运行:

Given the following 2D matrix:

 1  2  3
 4  5  6
 7  8  9
10 11 12
Rotating it to the right produces the following matrix:

10  7  4  1
11  8  5  2
12  9  6  3

我得到的输出:

[[10, 7, 4, 1], [11, 8, 5, 2], [12, 9, 6, 3]]

标签: python

解决方案


Your4 功能可以满足您的需求。

您只需要格式化输出

def matrix_rotate_right(a):

    b = []

    for i in range(len(a[0])):
        b.append([])
        for j in range(len(a) - 1, -1, -1):
            b[i].append(a[j][i])

    return b
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
b = matrix_rotate_right(a)
for tuple in b:
    print(format(' '.join(map(str,tuple))))

推荐阅读