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使用PIL库实现验证码图片的方法
Mar 11 Python
Python自定义进程池实例分析【生产者、消费者模型问题】
Sep 19 Python
python中利用xml.dom模块解析xml的方法教程
May 24 Python
用python实现的线程池实例代码
Jan 06 Python
Python OpenCV实现图片上输出中文
Jan 22 Python
Python使用爬虫爬取静态网页图片的方法详解
Jun 05 Python
scrapy-redis的安装部署步骤讲解
Feb 27 Python
Python跳出多重循环的方法示例
Jul 03 Python
HTML的form表单和django的form表单
Jul 25 Python
python字符串替换re.sub()方法解析
Sep 18 Python
python输出数学符号实例
May 11 Python
python实现简易名片管理系统
Apr 11 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
thinkphp实现图片上传功能
2016/01/13 PHP
Yii框架实现的验证码、登录及退出功能示例
2017/05/20 PHP
跟随鼠标旋转的文字
2006/11/30 Javascript
js 上传图片预览问题
2010/12/06 Javascript
jQuery EasyUI API 中文文档 - Form表单
2011/10/06 Javascript
js解析与序列化json数据(二)序列化探讨
2013/02/01 Javascript
Extjs表单常见验证小结
2014/03/07 Javascript
bootstrapValidator.min.js表单验证插件
2017/02/09 Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
2017/07/17 Javascript
js 实现watch监听数据变化的代码
2019/10/13 Javascript
JS求解两数之和算法详解
2020/04/28 Javascript
jQuery实现移动端下拉展现新的内容回弹动画
2020/06/24 jQuery
vue中可编辑树状表格的实现代码
2020/10/31 Javascript
[52:22]EG vs VG Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
Python中的多行注释文档编写风格汇总
2016/06/16 Python
Python selenium实现微博自动登录的示例代码
2018/05/16 Python
Django中反向生成models.py的实例讲解
2018/05/30 Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
2018/06/20 Python
Python中logging实例讲解
2019/01/17 Python
Python异常继承关系和自定义异常实现代码实例
2020/02/20 Python
浅谈Python中的字符串
2020/06/10 Python
DataFrame 数据合并实现(merge,join,concat)
2020/06/14 Python
关于python3.9安装wordcloud出错的问题及解决办法
2020/11/02 Python
Python descriptor(描述符)的实现
2020/11/15 Python
Abbacino官网:包、钱包和女士配饰
2019/04/15 全球购物
大学生求职中的自我评价
2013/10/01 职场文书
岗位竞聘演讲稿
2014/01/10 职场文书
学员自我鉴定
2014/03/19 职场文书
感恩老师演讲稿400字
2014/08/28 职场文书
党员教师四风问题对照检查材料
2014/09/26 职场文书
2014年学校团委工作总结
2014/12/20 职场文书
2016年寒假社会实践活动心得体会
2015/10/09 职场文书
2016保送生自荐信范文
2016/01/29 职场文书
基于angular实现树形二级表格
2021/10/16 Javascript
详解Vue的列表渲染
2021/11/20 Vue.js
Docker下安装Oracle19c
2022/04/13 Servers