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 01 Python
TensorFlow安装及jupyter notebook配置方法
Sep 08 Python
Python实现读取txt文件并画三维图简单代码示例
Dec 09 Python
http请求 request失败自动重新尝试代码示例
Jan 25 Python
TensorFlow如何实现反向传播
Feb 06 Python
python使用xlrd模块读取xlsx文件中的ip方法
Jan 11 Python
使用CodeMirror实现Python3在线编辑器的示例代码
Jan 14 Python
对python函数签名的方法详解
Jan 22 Python
Django Rest framework认证组件详细用法
Jul 25 Python
Python企业编码生成系统之主程序模块设计详解
Jul 26 Python
深入了解Python 变量作用域
Jul 24 Python
python 发送get请求接口详解
Nov 17 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生成RSS文件类实例
2014/12/05 PHP
php post json参数的传递和接收处理方法
2018/05/31 PHP
Laravel程序架构设计思路之使用动作类
2018/06/07 PHP
javascript attachEvent和addEventListener使用方法
2009/03/19 Javascript
javascript 常用功能总结
2012/03/18 Javascript
JScript中的条件注释详解
2015/04/24 Javascript
原生js仿jquery animate动画效果
2016/07/13 Javascript
使用ReactJS实现tab页切换、菜单栏切换、手风琴切换和进度条效果
2016/10/17 Javascript
Bootstrap学习笔记之环境配置(1)
2016/12/07 Javascript
JavaScript数据结构之二叉树的查找算法示例
2017/04/13 Javascript
nodejs和C语言插入mysql数据库乱码问题的解决方法
2017/04/14 NodeJs
详谈jQuery中使用attr(), prop(), val()获取value的异同
2017/04/25 jQuery
Avalonjs双向数据绑定与监听的实例代码
2017/06/23 Javascript
使用webpack打包koa2 框架app
2018/02/02 Javascript
vue-cli脚手架引入图片的几种方法总结
2018/03/13 Javascript
vue 监听屏幕高度的实例
2018/09/05 Javascript
微信小程序实现登录注册tab切换效果
2020/12/29 Javascript
详解Vue-Router源码分析路由实现原理
2019/05/15 Javascript
浅谈目前可以使用ES10的5个新特性
2019/06/25 Javascript
vuex的使用步骤
2021/01/06 Vue.js
[01:35]2018完美盛典章节片——共竞
2018/12/17 DOTA
Python  __getattr__与__setattr__使用方法
2008/09/06 Python
python判断、获取一张图片主色调的2个实例
2014/04/10 Python
python 安装virtualenv和virtualenvwrapper的方法
2017/01/13 Python
对numpy的array和python中自带的list之间相互转化详解
2018/04/13 Python
tensorflow 恢复指定层与不同层指定不同学习率的方法
2018/07/26 Python
Python实现将多个空格换为一个空格.md的方法
2018/12/20 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
2019/10/24 Python
Python reduce函数作用及实例解析
2020/05/08 Python
加拿大城市本地限时优惠:Buytopia.ca
2018/09/19 全球购物
一份Java笔试题
2012/02/21 面试题
项目副经理岗位职责
2013/12/30 职场文书
《有趣的发现》教学反思
2014/04/15 职场文书
九一八事变演讲稿范文
2014/09/14 职场文书
公司租房协议书
2014/10/14 职场文书
2016国庆节活动宣传语
2015/11/25 职场文书