Python3实现的旋转矩阵图像算法示例


Posted in Python onApril 03, 2019

本文实例讲述了Python3实现的旋转矩阵图像算法。分享给大家供大家参考,具体如下:

问题:

给定一个 n × n 的二维矩阵表示一个图像。

将图像顺时针旋转 90 度。

方案一:先按X轴对称旋转, 再用zip()解压,最后用list重组。

# -*- coding:utf-8 -*-
#! python3
class Solution:
  def rotate(self, matrix):
    """
    :type matrix: List[List[int]]
    :rtype: void Do not return anything, modify matrix in-place instead.
    """
    matrix[:] = map(list, zip(*matrix[: : -1]))
    return matrix
if __name__ == '__main__':
  # 测试代码
  matrix = [
    [1,2,3,4],
    [5,6,7,8],
    [9,10,11,12],
    [13,14,15,16]
  ]
  solution = Solution()
  result = solution.rotate(matrix)
  print(result)

运行结果:

[[13, 9, 5, 1], [14, 10, 6, 2], [15, 11, 7, 3], [16, 12, 8, 4]]

方案二:找到规律,用原矩阵数据 赋值

# -*- coding:utf-8 -*-
#! python3
class Solution:
  def rotate(self, matrix):
    """
    :type matrix: List[List[int]]
    :rtype: void Do not return anything, modify matrix in-place instead.
    """
    m = matrix.copy()
    n = len(matrix)
    for i in range(n):
      matrix[i] = [m[j][i] for j in range(n - 1, -1, -1)]
    return
if __name__ == '__main__':
  # 测试代码
  matrix = [
    [1,2,3,4],
    [5,6,7,8],
    [9,10,11,12],
    [13,14,15,16]
  ]
  solution = Solution()
  result = solution.rotate(matrix)
  print(result)

运行结果:

[[13, 9, 5, 1], [14, 10, 6, 2], [15, 11, 7, 3], [16, 12, 8, 4]]

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python实现人人网登录示例分享
Jan 19 Python
在Django的URLconf中进行函数导入的方法
Jul 18 Python
Python循环语句中else的用法总结
Sep 11 Python
pandas中Timestamp类用法详解
Dec 11 Python
Python使用字典实现的简单记事本功能示例
Aug 15 Python
关于PyTorch 自动求导机制详解
Aug 18 Python
python输入错误后删除的方法
Oct 12 Python
如何使用Python脚本实现文件拷贝
Nov 20 Python
python实现飞船大战
Apr 24 Python
Python-jenkins模块获取jobs的执行状态操作
May 12 Python
Python pandas如何向excel添加数据
May 22 Python
keras的load_model实现加载含有参数的自定义模型
Jun 22 Python
python3对拉勾数据进行可视化分析的方法详解
Apr 03 #Python
python2.7使用plotly绘制本地散点图和折线图
Apr 02 #Python
Python时间序列处理之ARIMA模型的使用讲解
Apr 02 #Python
Python代码实现删除一个list里面重复元素的方法
Apr 02 #Python
从0开始的Python学习014面向对象编程(推荐)
Apr 02 #Python
Python参数解析模块sys、getopt、argparse使用与对比分析
Apr 02 #Python
python flask安装和命令详解
Apr 02 #Python
You might like
PHP中使用memcache存储session的三种配置方法
2014/04/05 PHP
php中curl和soap方式请求服务超时问题的解决
2018/06/11 PHP
js实现简单的购物车有图有代码
2014/05/26 Javascript
jQuery 1.9.1源码分析系列(十五)动画处理之缓动动画核心Tween
2015/12/03 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
2016/01/23 Javascript
AngularJS中关于ng-class指令的几种实现方式详解
2016/09/17 Javascript
jquery 实现复选框的全选操作实例代码
2017/01/24 Javascript
详解Angular2响应式表单
2017/06/14 Javascript
jQuery实现的简单前端搜索功能示例
2017/10/28 jQuery
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
2019/11/09 Javascript
Vue 中获取当前时间并实时刷新的实现代码
2020/05/12 Javascript
Nodejs实现WebSocket代码实例
2020/05/19 NodeJs
vue基础知识--axios合并请求和slot
2020/06/04 Javascript
[04:53]DOTA2英雄基础教程 祈求者
2014/01/03 DOTA
[05:36]DOTA2 2015国际邀请赛中国区预选赛第四日TOP10
2015/05/29 DOTA
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
2015/10/18 Python
Python中functools模块的常用函数解析
2016/06/30 Python
python中urlparse模块介绍与使用示例
2017/11/19 Python
Python使用reportlab模块生成PDF格式的文档
2019/03/11 Python
关于pymysql模块的使用以及代码详解
2019/09/01 Python
Python各种扩展名区别点整理
2020/02/27 Python
Python ORM框架Peewee用法详解
2020/04/29 Python
python3代码中实现加法重载的实例
2020/12/03 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
2021/01/05 Python
Pretty Green美国:英式摇滚服饰风格代表品牌之一
2019/01/23 全球购物
美国在线纱线商店:Darn Good Yarn
2019/03/20 全球购物
公司活动邀请函
2014/01/24 职场文书
广告词串烧
2014/03/19 职场文书
房屋委托书范本
2014/04/04 职场文书
给公司的建议书范文
2014/05/13 职场文书
2014年销售人员工作总结
2014/11/27 职场文书
2014社会治安综合治理工作总结
2014/12/04 职场文书
给校长的建议书范文
2015/09/14 职场文书
SQL Server远程连接的设置步骤(图文)
2022/03/23 SQL Server
python pandas 解析(读取、写入)CSV 文件的操作方法
2022/12/24 Python