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 01 Python
Python中使用第三方库xlrd来读取Excel示例
Apr 05 Python
python实现上传下载文件功能
Nov 19 Python
python操作MySQL 模拟简单银行转账操作
Sep 27 Python
python爬虫获取淘宝天猫商品详细参数
Jun 23 Python
redis之django-redis的简单缓存使用
Jun 07 Python
Python列表生成式与生成器操作示例
Aug 01 Python
Python一个简单的通信程序(客户端 服务器)
Mar 06 Python
使用Pyhton集合set()实现成果查漏的例子
Nov 24 Python
python统计函数库scipy.stats的用法解析
Feb 25 Python
python操作redis数据库的三种方法
Sep 10 Python
python自动统计zabbix系统监控覆盖率的示例代码
Apr 03 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下用rmdir实现删除目录的三种方法小结
2008/04/20 PHP
php 获取可变函数参数的函数
2009/08/26 PHP
兼容性比较好的PHP生成缩略图的代码
2011/01/12 PHP
PHP 小心urldecode引发的SQL注入漏洞
2011/10/27 PHP
php微信开发自定义菜单
2016/08/27 PHP
php libevent 功能与使用方法详解
2020/03/04 PHP
juqery 学习之三 选择器 层级 基本
2010/11/25 Javascript
只需20行代码就可以写出CSS覆盖率测试脚本
2013/04/24 Javascript
原生js和jQuery写的网页选项卡特效对比
2015/04/27 Javascript
javascript中DOM复选框选择用法实例
2015/05/14 Javascript
JS实现生成会变大变小的圆环实例
2015/08/05 Javascript
jQuery实现的fixedMenu下拉菜单效果代码
2015/08/24 Javascript
Javascript简单实现面向对象编程继承实例代码
2015/11/27 Javascript
React Native实现进度条弹框的示例代码
2017/07/17 Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
2017/09/19 Javascript
JS实现利用两个队列表示一个栈的方法
2017/12/13 Javascript
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
2018/04/27 jQuery
微信小程序实现弹出菜单功能
2018/06/12 Javascript
javascript 对象 与 prototype 原型用法实例分析
2019/11/11 Javascript
vue全屏事件开发详解
2020/06/17 Javascript
[02:35]DOTA2英雄基础教程 末日使者
2013/12/04 DOTA
[01:04:08]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第一场 12.16
2020/12/18 DOTA
python正则表达式re模块详细介绍
2014/05/29 Python
Python调用系统底层API播放wav文件的方法
2017/08/11 Python
查找python项目依赖并生成requirements.txt的方法
2018/07/10 Python
python实现列表的排序方法分享
2019/07/01 Python
详解Python高阶函数
2020/08/15 Python
python批量合成bilibili的m4s缓存文件为MP4格式 ver2.5
2020/12/01 Python
JENNIFER BEHR官网:各种耳环和发饰
2020/06/07 全球购物
毕业生面试求职信
2014/06/23 职场文书
工作犯错保证书
2015/05/11 职场文书
长江七号观后感
2015/06/11 职场文书
领导干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
会计做账心得体会
2016/01/22 职场文书
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android
Redis Lua脚本实现ip限流示例
2022/07/15 Redis