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 相关文章推荐
详解Python2.x中对Unicode编码的使用
Apr 03 Python
python清除字符串里非字母字符的方法
Jul 02 Python
python实现朴素贝叶斯分类器
Mar 28 Python
搞定这套Python爬虫面试题(面试会so easy)
Apr 03 Python
python基于pdfminer库提取pdf文字代码实例
Aug 15 Python
python Event事件、进程池与线程池、协程解析
Oct 25 Python
Python文件路径名的操作方法
Oct 30 Python
Django关于admin的使用技巧和知识点
Feb 10 Python
pyautogui自动化控制鼠标和键盘操作的步骤
Apr 01 Python
pytorch 多分类问题,计算百分比操作
Jul 09 Python
django Model层常用验证器及自定义验证器详解
Jul 15 Python
Python爬取网站图片并保存的实现示例
Feb 26 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
JAVA/JSP学习系列之二
2006/10/09 PHP
php中使用key,value,current,next和prev函数遍历数组的方法
2015/03/17 PHP
php eval函数一句话木马代码
2015/05/21 PHP
PHP生成(支持多模板)二维码海报代码
2018/04/30 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
2019/06/19 PHP
javascript中使用css需要注意的地方小结
2010/09/01 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
javascript实现的一个随机点名功能
2014/08/26 Javascript
js实现上传图片预览的方法
2015/02/09 Javascript
js网页滚动条滚动事件实例分析
2015/05/05 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
2016/05/17 Javascript
浅析Javascript中bind()方法的使用与实现
2016/05/30 Javascript
深入理解JavaScript内置函数
2016/06/03 Javascript
jQuery回到顶部的代码
2016/07/09 Javascript
localStorage实现便签小程序
2016/11/28 Javascript
nodejs socket实现的服务端和客户端功能示例
2017/06/02 NodeJs
JS基于正则表达式实现的密码强度验证功能示例
2017/09/21 Javascript
解读ES6中class关键字
2017/11/20 Javascript
利用ES6实现单例模式及其应用详解
2017/12/09 Javascript
微信小程序搭建(mpvue+mpvue-weui+fly.js)的详细步骤
2018/09/18 Javascript
webpack常用构建优化策略小结
2019/11/21 Javascript
python实现根据主机名字获得所有ip地址的方法
2015/06/28 Python
Python实现的Excel文件读写类
2015/07/30 Python
Python实现一个转存纯真IP数据库的脚本分享
2017/05/21 Python
python之virtualenv的简单使用方法(必看篇)
2017/11/25 Python
python提取具有某种特定字符串的行数据方法
2018/12/11 Python
解决新django中的path不能使用正则表达式的问题
2018/12/18 Python
python+mysql实现学生信息查询系统
2019/02/21 Python
python中count函数简单的实例讲解
2020/02/06 Python
英国网上花店:Bunches
2016/11/29 全球购物
SEPHORA丝芙兰捷克官网:购买香水、化妆品和护肤品
2018/11/26 全球购物
总裁办公室主任职责
2014/01/02 职场文书
各营销点岗位职责范本
2014/03/05 职场文书
工作总结与自我评价
2014/09/18 职场文书
2014年语文教研组工作总结
2014/12/06 职场文书
2016年师德师风学习心得体会
2016/01/12 职场文书