首页 > 解决方案 > 在python中旋转二维数组的问题

问题描述

如何在不使用 numpy 的情况下使该数组向右旋转 90 度。

multiarray = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
auxiliaryArray = []
colLength = len(multiarray[0])
rowLength = len(multiarray)
for indexRow in range(len(multiarray)):
    for indexCol in range(len(multiarray[0])):
        auxiliaryArray[indexCol][rowLength - 1 - indexRow] = multiarray[indexRow][indexCol]

print(auxiliaryArray)

错误: IndexError: list index out of range

期望的输出:[[7, 4, 1], [8, 5, 2], [9, 6, 3]]

标签: python

解决方案


您可以zip在反转数组上使用:

auxiliaryArray = list(zip(*multiarray[::-1]))

或者

auxiliaryArray = list(zip(*reversed(multiarray)))

输出:[(7, 4, 1), (8, 5, 2), (9, 6, 3)]

如果您需要列表而不是元组:

auxiliaryArray = list(map(list, zip(*reversed(multiarray))))

输出:[[7, 4, 1], [8, 5, 2], [9, 6, 3]]


推荐阅读