相关疑难解决方法(0)

你如何旋转二维数组?

灵感来自Raymond Chen的帖子,假设你有一个4x4二维数组,写一个旋转90度的函数.Raymond链接到伪代码的解决方案,但我希望看到一些现实世界的东西.

[1][2][3][4]
[5][6][7][8]
[9][0][1][2]
[3][4][5][6]
Run Code Online (Sandbox Code Playgroud)

变为:

[3][9][5][1]
[4][0][6][2]
[5][1][7][3]
[6][2][8][4]
Run Code Online (Sandbox Code Playgroud)

更新:尼克的答案是最直接的,但有没有办法比n ^ 2做得更好?如果矩阵是10000x10000怎么办?

algorithm matrix multidimensional-array

295
推荐指数
16
解决办法
29万
查看次数

如何使用python旋转此列表列表

我有一个列表列表,我需要旋转90度.我设法获得了第一个新行,但是我无法获得其他任何一个,所以我把for循环放入一个函数中,我每次迭代都增加了一个计数,但我刚刚给终端打印了一大堆.

grid = [['.', '.', '.', '.', '.', '.'],
        ['.', '0', '0', '.', '.', '.'],
        ['0', '0', '0', '0', '.', '.'],
        ['0', '0', '0', '0', '0', '.'],
        ['.', '0', '0', '0', '0', '0'],
        ['0', '0', '0', '0', '0', '.'],
        ['0', '0', '0', '0', '.', '.'],
        ['.', '0', '0', '.', '.', '.'],
        ['.', '.', '.', '.', '.', '.']]
Run Code Online (Sandbox Code Playgroud)

我需要如何旋转.

'''
..00.00..
.0000000.
.0000000.
..00000..
...000...
....0....

'''
Run Code Online (Sandbox Code Playgroud)

我的代码

def get_row(grid, new_grid, new_row, count):
    for row in grid:
        new_row.append(row[count])
    new_grid.append(new_row)

new_grid = …
Run Code Online (Sandbox Code Playgroud)

python

9
推荐指数
2
解决办法
4628
查看次数