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 异常处理的实例详解
Sep 11 Python
django请求返回不同的类型图片json,xml,html的实例
May 22 Python
对django2.0 关联表的必填on_delete参数的含义解析
Aug 09 Python
使用Python脚本zabbix自定义key监控oracle连接状态
Aug 28 Python
Python使用APScheduler实现定时任务过程解析
Sep 11 Python
设置jupyter中DataFrame的显示限制方式
Apr 12 Python
Python使用pdb调试代码的技巧
May 03 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
May 20 Python
Python HTMLTestRunner库安装过程解析
May 25 Python
详细分析Python可变对象和不可变对象
Jul 09 Python
python爬虫使用requests发送post请求示例详解
Aug 05 Python
Django通过设置CORS解决跨域问题
Nov 26 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
基于mysql的论坛(3)
2006/10/09 PHP
php 魔术方法使用说明
2009/10/20 PHP
PHP同时连接多个mysql数据库示例代码
2014/03/17 PHP
全面兼容的javascript时间格式化函数(比较实用)
2014/05/14 Javascript
javascript常用代码段搜集
2014/12/04 Javascript
node.js读取文件到字符串的方法
2015/06/29 Javascript
JS+DIV+CSS排版布局实现美观的选项卡效果
2015/10/10 Javascript
深入理解事件冒泡(Bubble)和事件捕捉(capture)
2016/05/28 Javascript
纯前端JavaScript实现Excel IO案例分享
2016/08/26 Javascript
NProgress显示顶部进度条效果及使用详解
2019/09/21 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
[04:30]显微镜下的DOTA2第五期——拉比克
2013/09/26 DOTA
[02:41]DOTA2亚洲邀请赛小组赛第三日 赛事回顾
2015/02/01 DOTA
[03:22]DAC最前线(第二期)—DOTA2亚洲邀请赛主赛场周边及线路探访
2015/01/24 DOTA
zbar解码二维码和条形码示例
2014/02/07 Python
python实现图片批量剪切示例
2014/03/25 Python
python实现的文件夹清理程序分享
2014/11/22 Python
Python数据分析库pandas基本操作方法
2018/04/08 Python
django反向解析URL和URL命名空间的方法
2018/06/05 Python
python使用Plotly绘图工具绘制散点图、线形图
2019/04/02 Python
如何使用Python标准库进行性能测试
2019/06/25 Python
Python Print实现在输出中插入变量的例子
2019/12/25 Python
在keras下实现多个模型的融合方式
2020/05/23 Python
python实现密码验证合格程序的思路详解
2020/06/01 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
CSS3中HSL和HSLA的简单使用示例
2015/07/14 HTML / CSS
考博专家推荐信模板
2013/12/02 职场文书
《小小雨点》教学反思
2014/02/18 职场文书
幼儿园健康教育方案
2014/06/14 职场文书
自主招生自荐信范文
2015/03/04 职场文书
2015年路政工作总结
2015/05/22 职场文书
幼儿园卫生保健制度
2015/08/05 职场文书
清明节随笔
2015/08/15 职场文书
css3 filter属性的使用简介
2021/03/31 HTML / CSS
php实现自动生成验证码的实例讲解
2021/11/17 PHP
Oracle 触发器trigger使用案例
2022/02/24 Oracle