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

非对称维度数组90度旋转问题:无法在2x3与3x2间往返转换

解决非对称维度像素块旋转往返问题
  • 原代码的核心问题:zip(*self.array[::-1])返回的是元组迭代器,未转换为列表结构可能导致后续维度处理异常;且若要在m×n和n×m维度间往返,需区分顺时针旋转和逆时针旋转操作,而非重复使用同一段代码。

顺时针旋转90度(m×n → n×m)

将数组反转后转置,同时把结果转换为列表的列表:

def rotate_clockwise(self):
    self.array = [list(row) for row in zip(*self.array[::-1])]

逆时针旋转90度(n×m → m×n)

将数组转置后反转,同样转换为列表的列表:

def rotate_counterclockwise(self):
    self.array = [list(row) for row in zip(*self.array)][::-1]

示例验证

初始2x3数组:

self.array = [[1, 2, 3], [4, 5, 6]]
  • 顺时针旋转后(3x2):
    [[4, 1], [5, 2], [6, 3]]
    
  • 再逆时针旋转,恢复为原2x3数组:
    [[1, 2, 3], [4, 5, 6]]
    

如果需要旋转四次回到原状态,即使是非对称维度,交替使用顺时针/逆时针旋转,或者每次旋转后记录当前维度,按需选择旋转方向即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 20:06:08