python实现转圈打印矩阵


Posted in Python onMarch 02, 2019

本文实例为大家分享了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的Flask框架中实现简单的登录功能的教程
Apr 20 Python
整理Python最基本的操作字典的方法
Apr 24 Python
Python设计模式之抽象工厂模式
Aug 25 Python
Python内置函数 next的具体使用方法
Nov 24 Python
python获取微信企业号打卡数据并生成windows计划任务
Apr 30 Python
pyqt5 从本地选择图片 并显示在label上的实例
Jun 13 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
Jul 09 Python
Python实现CNN的多通道输入实例
Jan 17 Python
python读取mysql数据绘制条形图
Mar 25 Python
使用Keras中的ImageDataGenerator进行批次读图方式
Jun 17 Python
Django serializer优化类视图的实现示例
Jul 16 Python
Python中的程序流程控制语句
Feb 24 Python
python实现顺时针打印矩阵
Mar 02 #Python
python实现二维数组的对角线遍历
Mar 02 #Python
python实现矩阵打印
Mar 02 #Python
python实现杨氏矩阵查找
Mar 02 #Python
Python3.4学习笔记之列表、数组操作示例
Mar 01 #Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
Mar 01 #Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
Mar 01 #Python
You might like
PHP 远程关机实现代码
2009/11/10 PHP
用php随机生成福彩双色球号码的2种方法
2013/02/04 PHP
PHP邮件群发机实现代码
2016/02/16 PHP
Symfony的安装和配置方法
2016/03/17 PHP
使用laravel和ECharts实现折线图效果的例子
2019/10/09 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
用js实现的检测浏览器和系统的函数
2009/04/09 Javascript
JavaScript 的方法重载效果
2009/08/07 Javascript
jquery和ajax的关系详细介绍
2013/11/29 Javascript
jquery创建表格(自动增加表格)代码分享
2013/12/25 Javascript
Bootstrap入门书籍之(五)导航条、分页导航
2016/02/17 Javascript
Boostrap入门准备之border box
2016/05/09 Javascript
总结JavaScript设计模式编程中的享元模式使用
2016/05/21 Javascript
jQuery模拟select实现下拉菜单功能
2016/06/20 Javascript
第四篇Bootstrap网格系统偏移列和嵌套列
2016/06/21 Javascript
jquery弹出框插件jquery.ui.dialog用法分析
2016/08/20 Javascript
vuex实现登录状态的存储,未登录状态不允许浏览的方法
2018/03/09 Javascript
React实现全局组件的Toast轻提示效果
2018/09/21 Javascript
vue项目打包后怎样优雅的解决跨域
2019/05/26 Javascript
vue实现图片上传到后台
2020/06/29 Javascript
Django项目中model的数据处理以及页面交互方法
2018/05/30 Python
python通过Windows下远程控制Linux系统
2018/06/20 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
2018/06/26 Python
Python使用pickle模块实现序列化功能示例
2018/07/13 Python
Python使用百度api做人脸对比的方法
2019/08/28 Python
Python文本处理简单易懂方法解析
2019/12/19 Python
Python HTMLTestRunner可视化报告实现过程解析
2020/04/10 Python
深入浅析python 中的self和cls的区别
2020/06/20 Python
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
2013/07/30 面试题
模具毕业生推荐信
2014/02/15 职场文书
2014小学植树节活动总结
2014/03/10 职场文书
2015年教研员工作总结
2015/05/26 职场文书
运动会开幕式主持词
2015/07/01 职场文书
学校运动会通讯稿
2015/07/18 职场文书
安全学习心得体会范文
2016/01/18 职场文书
Python如何加载模型并查看网络
2022/07/15 Python