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入门之三角函数tan()函数实例详解
Nov 08 Python
python实现ID3决策树算法
Dec 20 Python
Python实现发送与接收邮件的方法详解
Mar 28 Python
Python中循环后使用list.append()数据被覆盖问题的解决
Jul 01 Python
Python实现的大数据分析操作系统日志功能示例
Feb 11 Python
python面向对象实现名片管理系统文件版
Apr 26 Python
利用PyCharm Profile分析异步爬虫效率详解
May 08 Python
selenium+python自动化测试环境搭建步骤
Jun 03 Python
Python数据存储之 h5py详解
Dec 26 Python
python实现在一个画布上画多个子图
Jan 19 Python
Python openpyxl模块原理及用法解析
Jan 19 Python
pandas进行数据输入和输出的方法详解
Mar 23 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 Hash函数,增强密码安全
2011/02/25 PHP
php中文字符串截取方法实例总结
2014/09/30 PHP
smarty中js的调用方法示例
2014/10/27 PHP
WAF的正确bypass
2017/01/05 PHP
php DES加密算法实例分析
2019/09/18 PHP
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
2011/06/28 Javascript
50款非常棒的 jQuery 插件分享
2012/03/29 Javascript
页面右下角弹出提示框示例代码js版
2013/08/02 Javascript
JS获得浏览器版本和操作系统版本的例子
2014/05/13 Javascript
js实现键盘操作实现div的移动或改变的原理及代码
2014/06/23 Javascript
JS模式之简单的订阅者和发布者模式完整实例
2015/06/30 Javascript
轻量级网页遮罩层jQuery插件用法实例
2015/07/31 Javascript
Jquery attr()方法 属性赋值和属性获取详解
2016/04/15 Javascript
Bootstrap编写一个兼容主流浏览器的受众门户式风格页面
2016/07/01 Javascript
javascript循环链表之约瑟夫环的实现方法
2017/01/16 Javascript
微信小程序开发之数据存储 参数传递 数据缓存
2017/04/13 Javascript
如何利用ES6进行Promise封装总结
2019/02/11 Javascript
SpringBoot在yml配置文件中配置druid的操作
2020/11/16 Javascript
[45:59]完美世界DOTA2联赛PWL S2 FTD vs GXR 第二场 11.22
2020/11/24 DOTA
python益智游戏计算汉诺塔问题示例
2014/03/05 Python
Python判断操作系统类型代码分享
2014/11/22 Python
python3 读写文件换行符的方法
2018/04/09 Python
pytorch 数据集图片显示方法
2018/07/26 Python
python requests爬取高德地图数据的实例
2018/11/10 Python
Pycharm配置远程调试的方法步骤
2018/12/17 Python
Python一个简单的通信程序(客户端 服务器)
2019/03/06 Python
python numpy实现文件存取的示例代码
2019/05/26 Python
详解使用python绘制混淆矩阵(confusion_matrix)
2019/07/14 Python
使用python无账号无限制获取企查查信息的实例代码
2020/04/17 Python
CSS3实现多背景展示效果通过CSS3定位多张背景
2014/08/10 HTML / CSS
施华洛世奇意大利官网:SWAROVSKI意大利
2018/07/23 全球购物
Bulk Powders意大利:运动补充在线商店
2019/02/09 全球购物
2014年工作总结及2015工作计划
2014/12/12 职场文书
校本课程教学计划
2015/01/19 职场文书
小学五一劳动节活动总结
2015/02/09 职场文书
公司借款担保书
2015/09/22 职场文书