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 相关文章推荐
2款Python内存检测工具介绍和使用方法
Jun 01 Python
星球大战与Python之间的那些事
Jan 07 Python
python 批量添加的button 使用同一点击事件的方法
Jul 17 Python
Python中调用其他程序的方式详解
Aug 06 Python
Python实现微信翻译机器人的方法
Aug 13 Python
python脚本调用iftop 统计业务应用流量的思路详解
Oct 11 Python
Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题
Feb 21 Python
解决导入django_filters不成功问题No module named 'django_filter'
Jul 15 Python
Python classmethod装饰器原理及用法解析
Oct 17 Python
python的dict判断key是否存在的方法
Dec 09 Python
Python 实现进度条的六种方式
Jan 06 Python
用pip给python安装matplotlib库的详细教程
Feb 24 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取进制余数函数代码
2012/01/19 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
2016/03/22 PHP
php array_pop 删除数组最后一个元素实例
2016/11/02 PHP
PHP观察者模式定义与用法实例分析
2019/03/22 PHP
JQuery 无废话系列教程(一) jquery入门 [推荐]
2009/06/23 Javascript
JQuery实现用户名无刷新验证的小例子
2013/03/22 Javascript
JS将数字转换成三位逗号分隔的样式(示例代码)
2014/02/19 Javascript
jQuery操作表格(table)的常用方法、技巧汇总
2014/04/12 Javascript
jquery获取form表单input元素值的简单实例
2016/05/30 Javascript
Ionic快速安装教程
2016/06/03 Javascript
JavaScript字符串检索字符的方法
2017/06/23 Javascript
JS与HTML结合实现流程进度展示条思路详解
2017/09/03 Javascript
js this 绑定机制深入详解
2020/04/30 Javascript
vue将文件/图片批量打包下载zip的教程
2020/10/21 Javascript
使用jquery实现轮播图效果
2021/01/02 jQuery
pyqt和pyside开发图形化界面
2014/01/22 Python
Python中无限元素列表的实现方法
2014/08/18 Python
在Python中使用PIL模块处理图像的教程
2015/04/29 Python
python3+dlib实现人脸识别和情绪分析
2018/04/21 Python
Python基于百度AI的文字识别的示例
2018/04/21 Python
解决Tensorflow安装成功,但在导入时报错的问题
2018/06/13 Python
Python实现求解一元二次方程的方法示例
2018/06/20 Python
在Python中实现shuffle给列表洗牌
2018/11/08 Python
python批量从es取数据的方法(文档数超过10000)
2018/12/27 Python
pandas通过字典生成dataframe的方法步骤
2019/07/23 Python
Python 实现一个手机号码获取妹子名字的功能
2019/09/25 Python
基于selenium及python实现下拉选项定位select
2020/07/22 Python
python 实现的车牌识别项目
2021/01/25 Python
Ray-Ban雷朋奥地利官网:全球领先的太阳眼镜品牌
2020/10/12 全球购物
在数据文件自动增长时,自动增长是否会阻塞对文件的更新
2014/05/01 面试题
经济管理专业毕业生自荐信范文
2014/01/02 职场文书
2014年小学元旦活动方案
2014/02/12 职场文书
英语教育专业毕业生求职信
2014/08/28 职场文书
2014年最新学校运动会广播稿
2014/09/17 职场文书
车间质检员岗位职责
2015/04/08 职场文书
Python中json.dumps()函数的使用解析
2021/05/17 Python