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的词法分析与语法分析
May 18 Python
Python判断变量是否已经定义的方法
Aug 18 Python
Python中列表(list)操作方法汇总
Aug 18 Python
pygame播放音乐的方法
May 19 Python
python3实现跳一跳点击跳跃
Jan 08 Python
python实现人脸识别经典算法(一) 特征脸法
Mar 13 Python
Python 读取某个目录下所有的文件实例
Jun 23 Python
Flask框架配置与调试操作示例
Jul 23 Python
10 分钟快速入门 Python3的教程
Jan 29 Python
python设置环境变量的原因和方法
Jun 24 Python
django xadmin action兼容自定义model权限教程
Mar 30 Python
Python基于numpy模块实现回归预测
May 14 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的引用详解
2015/02/22 PHP
扩展String功能方法
2006/09/22 Javascript
onkeypress字符按键兼容所有浏览器使用介绍
2013/04/24 Javascript
谈谈javascript中使用连等赋值操作带来的问题
2015/11/26 Javascript
如何解决hover在ie6中的兼容性问题
2016/12/15 Javascript
移动端使用localResizeIMG4压缩图片
2017/04/22 Javascript
js原生代码实现轮播图的实例讲解
2017/07/28 Javascript
Nodejs 和Session 原理及实战技巧小结
2017/08/25 NodeJs
nodejs创建简易web服务器与文件读写的实例
2017/09/07 NodeJs
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
详解VUE2.X过滤器的使用方法
2018/01/11 Javascript
jQuery幻灯片插件owlcarousel参数说明中文文档
2018/02/27 jQuery
vue根据值给予不同class的实例
2018/09/29 Javascript
[51:32]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
Python SQLite3数据库操作类分享
2014/06/10 Python
在Python的Django框架中生成CSV文件的方法
2015/07/22 Python
使用Python编写简单的端口扫描器的实例分享
2015/12/18 Python
Python函数中的函数(闭包)用法实例
2016/03/15 Python
快速实现基于Python的微信聊天机器人示例代码
2017/03/03 Python
Python使用pandas处理CSV文件的实例讲解
2018/06/22 Python
Python 利用scrapy爬虫通过短短50行代码下载整站短视频
2018/10/29 Python
python2与python3的print及字符串格式化小结
2018/11/30 Python
python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】
2019/06/17 Python
python实现字符串完美拆分split()的方法
2019/07/16 Python
Python实现时间序列可视化的方法
2019/08/06 Python
详解Python3中的 input() 函数
2020/03/18 Python
浅谈Python中os模块及shutil模块的常规操作
2020/04/03 Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
2020/07/07 Python
详解Anaconda 的安装教程
2020/09/23 Python
Ubuntu配置Pytorch on Graph (PoG)环境过程图解
2020/11/19 Python
一个入门级python爬虫教程详解
2021/01/27 Python
初中校园之声广播稿
2014/01/15 职场文书
大学学习生活感言
2014/01/18 职场文书
学校证明范文
2015/06/24 职场文书
MySQL之PXC集群搭建的方法步骤
2021/05/25 MySQL
Python如何快速找到多个字典中的公共键(key)
2022/04/29 Python