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的单元测试
Apr 28 Python
老生常谈Python基础之字符编码
Jun 14 Python
python查看模块,对象的函数方法
Oct 16 Python
python实现爬取百度图片的方法示例
Jul 06 Python
使用Python刷淘宝喵币(低阶入门版)
Oct 30 Python
python opencv实现信用卡的数字识别
Jan 12 Python
15行Python代码实现免费发送手机短信推送消息功能
Feb 27 Python
Python使用monkey.patch_all()解决协程阻塞问题
Apr 15 Python
python列表的逆序遍历实现
Apr 20 Python
python3中sys.argv的实例用法
Apr 24 Python
Python-jenkins模块之folder相关操作介绍
May 12 Python
python实现每天自动签到领积分的示例代码
Aug 18 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定时计划任务与fsockopen持续进程实例
2014/05/23 PHP
举例详解PHP脚本的测试方法
2015/08/05 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
2015/10/20 PHP
Yii 2.0如何使用页面缓存方法示例
2017/05/23 PHP
PHP实现简单日历类编写
2020/08/28 PHP
地址栏上的一段语句,改变页面的风格。(教程)
2008/04/02 Javascript
Javascript setInterval的两种调用方法(实例讲解)
2013/11/29 Javascript
JS实现控制表格内指定单元格内容对齐的方法
2015/03/30 Javascript
在JavaScript中操作时间之getYear()方法的使用教程
2015/06/11 Javascript
非常实用的12个jquery代码片段
2015/11/02 Javascript
Bootstrap按钮功能之查询按钮和重置按钮
2016/10/26 Javascript
微信小程序 图片等比例缩放(图片自适应屏幕)
2016/11/16 Javascript
单行 JS 实现移动端金钱格式的输入规则
2017/05/22 Javascript
jQuery Json数据格式排版高亮插件json-viewer.js使用方法详解
2017/06/12 jQuery
使用vue-cli创建项目的图文教程(新手入门篇)
2018/05/02 Javascript
如何在微信小程序里面退出小程序的方法
2019/04/28 Javascript
javascript利用键盘控制小方块的移动
2020/04/20 Javascript
Jquery滑动门/tab切换实现方法完整示例
2020/06/05 jQuery
详解React的回调渲染模式
2020/09/10 Javascript
jQuery实现简单评论区功能
2020/10/26 jQuery
[06:20]2015国际邀请赛第三日top10
2015/08/08 DOTA
用python实现批量重命名文件的代码
2012/05/25 Python
Python操作配置文件ini的三种方法讲解
2019/02/22 Python
Python识别快递条形码及Tesseract-OCR使用详解
2019/07/15 Python
使用selenium和pyquery爬取京东商品列表过程解析
2019/08/15 Python
django 多数据库及分库实现方式
2020/04/01 Python
雷曼兄弟的五金店:Lehman’s Hardware Store
2019/04/10 全球购物
C#笔试题集合
2013/06/21 面试题
建筑项目策划书
2014/01/13 职场文书
小学教师听课制度
2014/02/01 职场文书
大学生自我评价范文分享
2014/02/21 职场文书
Nginx同一个域名配置多个项目的实现方法
2021/03/31 Servers
带你了解CSS基础知识,样式
2021/07/21 HTML / CSS
详解Oracle数据库中自带的所有表结构(sql代码)
2021/11/20 Oracle
Java9新特性对HTTP2协议支持与非阻塞HTTP API
2022/03/16 Java/Android
python如何读取和存储dict()与.json格式文件
2022/06/25 Python