python实现转圈打印矩阵
更新时间:2019年03月02日 11:04:49 作者:hotpotbo
这篇文章主要为大家详细介绍了python实现转圈打印矩阵,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了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的staticmethod与classmethod实现实例代码
这篇文章主要介绍了python的staticmethod与classmethod实现实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下2018-02-02Python isdigit()函数判断字符串是否全都是数字字符示例
这篇文章主要为大家介绍了Python判断字符串是否全都是数字字符示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2024-01-01Python DataFrame.groupby()聚合函数,分组级运算
python的pandas包提供的数据聚合与分组运算功能很强大,也很灵活,本文就带领大家一起来了解groupby技术,感兴趣的朋友跟随小编一起来看下2018-09-09python-opencv获取二值图像轮廓及中心点坐标的代码
今天小编就为大家分享一篇python-opencv获取二值图像轮廓及中心点坐标的代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2019-08-08基于Python 的进程管理工具supervisor使用指南
Supervisor 是基于 Python 的进程管理工具,可以轻松管理一些需要以守护进程方式执行的程序,也就是后台任务,例如用来启动和管理基于 Tornado 写的 Web 程序。2016-09-09
最新评论