You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python不使用numpy实现二维数组右旋转90度的报错解决

错误原因
  • 你的auxiliaryArray初始化后是空列表,不存在任何子列表和元素,直接通过索引auxiliaryArray[indexCol][rowLength - 1 - indexRow]赋值,会因为访问不存在的索引位置抛出越界错误。
  • 二维数组向右旋转90度后,新数组的行数等于原数组的列数,新数组的列数等于原数组的行数,需要先按照这个维度预先初始化辅助数组的结构,再做元素赋值。
修复后可运行代码
multiarray = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
rowLength = len(multiarray)
colLength = len(multiarray[0])
# 预先初始化辅助数组,维度为原列数*原行数,先填充占位值
auxiliaryArray = [[0 for _ in range(rowLength)] for _ in range(colLength)]
for indexRow in range(rowLength):
    for indexCol in range(colLength):
        auxiliaryArray[indexCol][rowLength - 1 - indexRow] = multiarray[indexRow][indexCol]

print(auxiliaryArray)

运行后输出和你期望的一致:[[7, 4, 1], [8, 5, 2], [9, 6, 3]]

更简洁的原生Python实现(可选)

如果不想提前初始化占位数组,也可以用内置的zip方法搭配反转逻辑实现,代码更简短:

multiarray = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
rotated = [list(row) for row in zip(*multiarray[::-1])]
print(rotated)

实现逻辑:先把原数组的行顺序倒转,再按列打包元素,最后把打包后的元组转成列表即可得到右旋转90度的结果。

内容的提问来源于stack exchange,提问作者Zukashi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 23:45:04