python实现转圈打印矩阵

 更新时间:2019年03月02日 11:04:49   作者:hotpotbo  
这篇文章主要为大家详细介绍了python实现转圈打印矩阵,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了python实现转圈打印矩阵的具体代码,供大家参考,具体内容如下

#! conding:utf-8
__author__ = "hotpot"
__date__ = "2017/10/28 9:40"


def return_edge(matrix, start_col, end_col, start_row, end_row):
  if start_row == end_row:
    return matrix[start_row][start_col:end_col+1]
  elif end_col ==start_col:
    res = []

    for i in range(start_row,end_row+1):
      res.append(matrix[i][end_col])
    return res
  else:
    res2 =[]
    res3 =[]
    res4=[]
    res1 = matrix[start_row][start_col:end_col+1]
    for i in range(start_row+1,end_row+1):
      res2.append(matrix[i][end_col])
    for i in range(end_col-1,start_col-1,-1):
      res3.append(matrix[end_row][i])
    for i in range(end_row-1,start_row,-1):
      res4.append(matrix[i][start_row])
    res1.extend(res2)
    res1.extend(res3)
    res1.extend(res4)
    return res1
def spiralOrder( matrix):
  if matrix:
    row = len(matrix)-1
    col = len(matrix[0])-1
    start_row = 0
    start_col = 0
    end_row = row
    end_col = col
    res =[]
    while start_col<=end_col and start_row <= end_row:
      res.extend(return_edge(matrix,start_col,end_col , start_row ,end_row))
      start_col+=1
      end_col-=1
      start_row+=1
      end_row-=1
    return res
  else:
    return matrix
if __name__ == '__main__':
  matrix = [[0 for i in range(3) ]for j in range(3)]
  num=1
  for m in range(len(matrix)):
    for n in range(len(matrix[0])):
      matrix[m][n]=num
      num+=1

  print(spiralOrder( matrix))

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 浅谈如何重构冗长的Python代码

    浅谈如何重构冗长的Python代码

    这篇文章主要介绍了浅谈如何重构冗长的Python代码,编写干净的 Pythonic 代码就是尽可能使其易于理解,但又简洁,过长的代码如何做到简洁高效,需要的朋友可以参考下
    2023-04-04
  • python实现Windows电脑定时关机

    python实现Windows电脑定时关机

    这篇文章主要为大家详细介绍了python实现Windows电脑定时关机功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • python的staticmethod与classmethod实现实例代码

    python的staticmethod与classmethod实现实例代码

    这篇文章主要介绍了python的staticmethod与classmethod实现实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • Python isdigit()函数判断字符串是否全都是数字字符示例

    Python isdigit()函数判断字符串是否全都是数字字符示例

    这篇文章主要为大家介绍了Python判断字符串是否全都是数字字符示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Python DataFrame.groupby()聚合函数,分组级运算

    Python DataFrame.groupby()聚合函数,分组级运算

    python的pandas包提供的数据聚合与分组运算功能很强大,也很灵活,本文就带领大家一起来了解groupby技术,感兴趣的朋友跟随小编一起来看下
    2018-09-09
  • python-opencv获取二值图像轮廓及中心点坐标的代码

    python-opencv获取二值图像轮廓及中心点坐标的代码

    今天小编就为大家分享一篇python-opencv获取二值图像轮廓及中心点坐标的代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • 基于Python 的进程管理工具supervisor使用指南

    基于Python 的进程管理工具supervisor使用指南

    Supervisor 是基于 Python 的进程管理工具,可以轻松管理一些需要以守护进程方式执行的程序,也就是后台任务,例如用来启动和管理基于 Tornado 写的 Web 程序。
    2016-09-09
  • 如何在Win10系统使用Python3连接Hive

    如何在Win10系统使用Python3连接Hive

    这篇文章主要介绍了如何在Win10系统使用Python3连接Hive,帮助大家更好的利用python读取数据,进行探索、分析和挖掘工作。感兴趣的朋友可以了解下
    2020-10-10
  • pandas温差查询案例的实现

    pandas温差查询案例的实现

    本文主要介绍了pandas温差查询案例的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Python 获取windows桌面路径的5种方法小结

    Python 获取windows桌面路径的5种方法小结

    今天小编就为大家分享一篇Python 获取windows桌面路径的5种方法小结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07

最新评论