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的内存泄漏及gc模块的使用分析
Jul 16 Python
Centos5.x下升级python到python2.7版本教程
Feb 14 Python
Python中使用PyQt把网页转换成PDF操作代码实例
Apr 23 Python
python二分查找算法的递归实现方法
May 12 Python
简单的python后台管理程序
Apr 13 Python
详解python使用turtle库来画一朵花
Mar 21 Python
Python实现一个带权无回置随机抽选函数的方法
Jul 24 Python
Python pip 安装与使用(安装、更新、删除)
Oct 06 Python
python取均匀不重复的随机数方式
Nov 27 Python
django模型类中,null=True,blank=True用法说明
Jul 09 Python
python基本算法之实现归并排序(Merge sort)
Sep 01 Python
python使用selenium爬虫知乎的方法示例
Oct 28 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&amp;MYSQL服务器配置说明
2006/10/09 PHP
基于PHP遍历数组的方法汇总分析
2013/06/08 PHP
PHP原生函数一定好吗?
2014/12/08 PHP
PHP模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
PHP以json或xml格式返回请求数据的方法
2018/05/31 PHP
基于laravel where的高级使用方法
2019/10/10 PHP
JQuery为textarea添加maxlength属性并且兼容IE
2013/04/25 Javascript
Jquery对数组的操作技巧整理
2014/03/25 Javascript
js检测浏览器版本、核心、是否移动端示例
2014/04/24 Javascript
js事件绑定快捷键以ctrl+k为例
2014/09/30 Javascript
JavaScript中利用各种循环进行遍历的方式总结
2015/11/10 Javascript
js如何准确获取当前页面url网址信息
2020/09/13 Javascript
jQuery简单实现上下,左右滑动的方法
2016/06/01 Javascript
js匿名函数作为函数参数详解
2016/06/01 Javascript
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
微信小程序实现跑马灯效果完整代码(附效果图)
2018/05/30 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
Nodejs封装类似express框架的路由实例详解
2020/01/05 NodeJs
Javascript原型链及instanceof原理详解
2020/05/25 Javascript
JavaScript浅层克隆与深度克隆示例详解
2020/09/01 Javascript
[02:32]DOTA2英雄基础教程 美杜莎
2014/01/07 DOTA
解决pip install的时候报错timed out的问题
2018/06/12 Python
详解Django-channels 实现WebSocket实例
2019/08/22 Python
CentOS 7如何实现定时执行python脚本
2020/06/24 Python
如何使用Cython对python代码进行加密
2020/07/08 Python
会走动的图形html5时钟示例
2014/04/27 HTML / CSS
俄罗斯和世界各地的酒店预订:Hotels.com俄罗斯
2016/08/19 全球购物
幼儿园园长自我鉴定
2013/10/22 职场文书
责任心演讲稿
2014/05/14 职场文书
机械专业求职信范文
2014/07/15 职场文书
2014年法院个人工作总结
2014/12/17 职场文书
毕业生自荐信范文
2015/03/05 职场文书
画展观后感
2015/06/17 职场文书
老乡会致辞
2015/07/28 职场文书
2015年中秋节主持词
2015/07/30 职场文书
公务员廉洁从政心得体会
2016/01/19 职场文书