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 os模块学习笔记
Jun 21 Python
Python使用matplotlib的pie函数绘制饼状图功能示例
Jan 08 Python
Python3实现的字典遍历操作详解
Apr 18 Python
TensorFlow数据输入的方法示例
Jun 19 Python
python实现从pdf文件中提取文本,并自动翻译的方法
Nov 28 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
May 09 Python
pyqt 多窗口之间的相互调用方法
Jun 19 Python
TensorFlow2.0:张量的合并与分割实例
Jan 19 Python
ubuntu 安装pyqt5和卸载pyQt5的方法
Mar 24 Python
新建文件时Pycharm中自动设置头部模板信息的方法
Apr 17 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
May 03 Python
用python对oracle进行简单性能测试
Dec 05 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
APMServ使用说明
2006/10/23 PHP
一步一步学习PHP(7) php 字符串相关应用
2010/03/05 PHP
图解找出PHP配置文件php.ini的路径的方法
2014/08/20 PHP
简单概括PHP的字符串中单引号与双引号的区别
2016/05/07 PHP
关于laravel 日志写入失败问题汇总
2019/10/17 PHP
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
基于jQuery的为attr添加id title等效果的实现代码
2011/04/20 Javascript
javascript给span标签赋值的方法
2015/11/26 Javascript
理解Angular数据双向绑定
2016/01/10 Javascript
在javascript中使用com组件的简单实现方法
2016/08/17 Javascript
Bootstrap的popover(弹出框)2秒后定时消失的实现代码
2017/02/27 Javascript
angular学习之ngRoute路由机制
2017/04/12 Javascript
Vue.js项目部署到服务器的详细步骤
2017/07/17 Javascript
JS实现访问DOM对象指定节点的方法示例
2018/04/04 Javascript
JavaScript去掉数组重复项的方法分析【测试可用】
2018/07/19 Javascript
浅谈webpack 四个核心概念之Entry
2019/06/12 Javascript
js使用文件流下载csv文件的实现方法
2019/07/15 Javascript
Python 3.6 性能测试框架Locust安装及使用方法(详解)
2017/10/11 Python
python3实现网页版raspberry pi(树莓派)小车控制
2020/02/12 Python
Python3实现个位数字和十位数字对调, 其乘积不变
2020/05/03 Python
Opencv常见图像格式Data Type及代码实例
2020/11/02 Python
HTML5+Canvas+CSS3实现齐天大圣孙悟空腾云驾雾效果
2016/04/26 HTML / CSS
基于HTML5实现类似微信手机摇一摇功能(计算摇动次数)
2017/07/24 HTML / CSS
为奢侈时尚带来了慈善元素:Olivela
2018/09/29 全球购物
《乌鸦和狐狸》教学反思
2014/02/08 职场文书
3的组成教学反思
2014/04/30 职场文书
优秀少先队员主要事迹材料
2014/05/28 职场文书
租房协议书范文
2014/08/20 职场文书
教师党的群众路线学习心得体会
2014/11/04 职场文书
慰问信格式
2015/02/14 职场文书
售票员岗位职责
2015/02/15 职场文书
2015年专项整治工作总结
2015/04/03 职场文书
先进个人主要事迹范文
2015/11/04 职场文书
golang 语言中错误处理机制
2021/08/30 Golang
Vue3中的Refs和Ref详情
2021/11/11 Vue.js
Nginx速查手册及常见问题
2022/04/07 Servers