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实现将英文单词表示的数字转换成阿拉伯数字的方法
Jul 02 Python
python Selenium爬取内容并存储至MySQL数据库的实现代码
Mar 16 Python
python ansible服务及剧本编写
Dec 29 Python
numpy中的高维数组转置实例
Apr 17 Python
分享vim python缩进等一些配置
Jul 02 Python
python 正确保留多位小数的实例
Jul 16 Python
python requests.post带head和body的实例
Jan 02 Python
python实现dijkstra最短路由算法
Jan 17 Python
关于python3中setup.py小概念解析
Aug 22 Python
解决python执行较大excel文件openpyxl慢问题
May 15 Python
使用Python项目生成所有依赖包的清单方式
Jul 13 Python
python如何将mat文件转为png
Jul 15 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 Socket 编程
2010/04/09 PHP
php中mysql模块部分功能的简单封装
2011/09/30 PHP
实例讲解php数据访问
2016/05/09 PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
2016/09/11 PHP
地震发生中逃生十大法则
2008/05/12 Javascript
一个级联菜单代码学习及removeClass与addClass的应用
2013/01/24 Javascript
瀑布流布局代码一例
2014/04/11 Javascript
javascript记录文本框内文字个数检测文字个数变化
2014/10/14 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
2015/11/17 Javascript
jQuery form 表单验证插件(fieldValue)校验表单
2016/01/24 Javascript
理解javascript中的MVC模式
2016/01/28 Javascript
Bootstrap滚动监听(Scrollspy)插件详解
2016/04/26 Javascript
Node.js的npm包管理器基础使用教程
2016/05/26 Javascript
微信小程序前端源码逻辑和工作流
2016/09/25 Javascript
微信小程序学习(4)-系统配置app.json详解
2017/01/12 Javascript
JS变量中有var定义和无var定义的区别以及es6中let命令和const命令
2017/02/19 Javascript
jQuery图片缩放插件smartZoom使用实例详解
2017/08/25 jQuery
利用Javascript开发一个二维周视图日历
2017/12/14 Javascript
Vue源码中要const _toStr = Object.prototype.toString的原因分析
2018/12/09 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
Vue——前端生成二维码的示例
2020/12/19 Vue.js
Python中的浮点数原理与运算分析
2017/10/12 Python
Python实现的多线程同步与互斥锁功能示例
2017/11/30 Python
Python中使用支持向量机SVM实践
2017/12/27 Python
Python中__slots__属性介绍与基本使用方法
2018/09/05 Python
python实现简单http服务器功能
2018/09/17 Python
pandas的连接函数concat()函数的具体使用方法
2019/07/09 Python
PyTorch: 梯度下降及反向传播的实例详解
2019/08/20 Python
10个Python面试常问的问题(小结)
2019/11/20 Python
django model 条件过滤 queryset.filter(**condtions)用法详解
2020/05/20 Python
美国一家著名的儿童鞋制造商:Stride Rite
2017/01/02 全球购物
全球异乡人的跨境社交电商平台:Kouhigh口嗨网
2020/07/24 全球购物
新加坡第一大健康与美容零售商:屈臣氏新加坡(Watsons Singapore)
2020/12/11 全球购物
舞蹈比赛获奖感言
2014/02/04 职场文书
厕所文明标语
2014/06/11 职场文书
原生Js 实现的简单无缝滚动轮播图的示例代码
2021/05/10 Javascript