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基于pygame实现的font游戏字体(附源码)
Nov 11 Python
Django小白教程之Django用户注册与登录
Apr 22 Python
Python实现处理逆波兰表达式示例
Jul 30 Python
python3 unicode列表转换为中文的实例
Oct 26 Python
详解Python3序列赋值、序列解包
May 14 Python
python实践项目之监控当前联网状态详情
May 23 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
Aug 06 Python
使用Fabric自动化部署Django项目的实现
Sep 27 Python
python使用OpenCV模块实现图像的融合示例代码
Apr 10 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
Sep 15 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
Jan 06 Python
Python Pandas模块实现数据的统计分析的方法
Jun 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
东芝TOSHIBA RP-F11电路分析
2021/03/02 无线电
php访问查询mysql数据的三种方法
2006/10/09 PHP
PHP 导出数据到淘宝助手CSV的方法分享
2010/02/27 PHP
php SQL Injection with MySQL
2011/02/27 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
2013/06/17 PHP
PHP获取当前页面URL函数实例
2014/10/22 PHP
对PHP PDO的一些认识小结
2015/01/23 PHP
php生成RSS订阅的方法
2015/02/13 PHP
Laravel+Intervention实现上传图片功能示例
2019/07/09 PHP
原创javascript小游戏实现代码
2010/08/19 Javascript
JavaScript中document对象使用详解
2015/01/06 Javascript
浅谈JavaScript中的Math.atan()方法的使用
2015/06/14 Javascript
node.js连接mongoDB数据库 快速搭建自己的web服务
2016/04/17 Javascript
Bootstrap实现登录校验表单(带验证码)
2016/06/23 Javascript
javascript实现将数字转成千分位的方法小结【5种方式】
2016/12/11 Javascript
如何提高数据访问速度
2016/12/26 Javascript
Angular.js组件之input mask对input输入进行格式化详解
2017/07/10 Javascript
JavaScript累加、迭代、穷举、递归等常用算法实例小结
2018/05/08 Javascript
基于JavaScript实现瀑布流布局
2018/08/15 Javascript
Javascript实现秒表计时游戏
2020/05/27 Javascript
微信小程序实现简单文字跑马灯
2020/05/26 Javascript
原生JS利用transform实现banner的无限滚动示例代码
2020/06/15 Javascript
[01:05:56]2018DOTA2亚洲邀请赛3月29日 小组赛A组 Newbee VS VG
2018/03/30 DOTA
Python2.5/2.6实用教程 入门基础篇
2009/11/29 Python
Python实现比较两个列表(list)范围
2015/06/12 Python
对python修改xml文件的节点值方法详解
2018/12/24 Python
Pytorch之finetune使用详解
2020/01/18 Python
python 画条形图(柱状图)实例
2020/04/24 Python
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
美国从事品牌鞋类零售的连锁店:Famous Footwear
2016/08/25 全球购物
大学生就业推荐信范文
2013/11/29 职场文书
党员四风问题对照检查材料
2014/09/27 职场文书
家长对孩子的寒假评语
2015/10/09 职场文书
OpenCV-Python实现油画效果的实例
2021/06/08 Python
Javascript使用integrity属性进行安全验证
2021/11/07 Javascript
Python软件包安装的三种常见方法
2022/07/07 Python