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

 更新时间:2019年04月03日 08:47:49   作者:zhenghaitian  
这篇文章主要介绍了Python3实现的旋转矩阵图像算法,涉及Python3列表遍历、切片转换、矩阵运算等相关操作技巧,需要的朋友可以参考下

本文实例讲述了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数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

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

相关文章

  • 浅谈keras中的keras.utils.to_categorical用法

    浅谈keras中的keras.utils.to_categorical用法

    这篇文章主要介绍了浅谈keras中的keras.utils.to_categorical用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • Python实现的各种常见分布算法示例

    Python实现的各种常见分布算法示例

    这篇文章主要介绍了Python实现的各种常见分布算法,结合实例形式总结分析了Python常见的各种分布算法相关实现技巧,包括二项分布、离散分布、泊松分布、正态分布、指数分布等算法实现方法,需要的朋友可以参考下
    2018-12-12
  • Python 多进程并发操作中进程池Pool的实例

    Python 多进程并发操作中进程池Pool的实例

    下面小编就为大家带来一篇Python 多进程并发操作中进程池Pool的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Python绘制分形图案探索无限细节和奇妙之美

    Python绘制分形图案探索无限细节和奇妙之美

    本文将介绍如何使用Python绘制各种分形图案,包括分形树、科赫曲线、曼德博集合等。通过本文读者可以了解分形图案的基本概念和构造方法,并学会使用Python绘制出各种精美的分形图案。本文还提供了具体的代码示例和实践案例,帮助读者更好地理解分形图案的奇妙之美
    2023-04-04
  • 对numpy数据写入文件的方法讲解

    对numpy数据写入文件的方法讲解

    今天小编就为大家分享一篇对numpy数据写入文件的方法讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Python函数学习笔记

    Python函数学习笔记

    Python探测局部作用域的时候:是在python编译代码时检测,而不是通过他们在运行时的赋值。
    2008-10-10
  • pandas 透视表中文字段排序方法

    pandas 透视表中文字段排序方法

    今天小编就为大家分享一篇pandas 透视表中文字段排序方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • Python实现Word的读写改操作

    Python实现Word的读写改操作

    本文主要介绍了运用docx模块实现读取Word,调整Word样式以及Word 写入操作的示例代码,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-11-11
  • 详解如何用Python写个听小说的爬虫

    详解如何用Python写个听小说的爬虫

    在路上经常发现好多人都喜欢用耳机听小说,同事居然可以一整天的带着一只耳机听小说。本文就用Python爬虫实现下载听小说tingchina.com的音频,需要的可以参考一下
    2022-02-02
  • Django对接elasticsearch实现全文检索的示例代码

    Django对接elasticsearch实现全文检索的示例代码

    搜索是很常用的功能,如果是千万级的数据应该怎么检索,本文主要介绍了Django对接elasticsearch实现全文检索的示例代码,感兴趣的可以了解一下
    2021-08-08

最新评论