python实现转圈打印矩阵
作者:hotpotbo 发布时间:2022-10-28 09:23:20
标签: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))
来源:https://blog.csdn.net/hotpotbo/article/details/78374025
0
投稿
猜你喜欢
- kNN算法是k-近邻算法的简称,主要用来进行分类实践,主要思路如下:1.存在一个训练数据集,每个数据都有对应的标签,也就是说,我们知道样本集
- 本文实例讲述了在Python中模仿POST HTTP数据及带Cookie提交数据的实现方法,分享给大家供大家参考。具体实现方法如下:方法一如
- 本文实例讲述了python3 常见解密加密算法。分享给大家供大家参考,具体如下:一.使用base64Base64编码,64指A-Z、a-z、
- 本文实例分析了javascript定义变量时带var与不带var的区别。分享给大家供大家参考。具体分析如下:直接看实例里说明:<scr
- 一、安装pycryto能实现大致3种类型的数据加密(单向加密、对称加密 和非对称加密),产生随机数,生成密钥对,数字签名单向加密:Crypt
- 发帖或者回帖的时候,系统会提示银两或经验增加的效果,慢慢出现又慢慢消失,用于取代对话框的那种是如何实现的?用google的jquery ap
- 使用SQLSERVER的应该经常遇到“Unable to read local eventlog (reason:事件日志文件已在读取时间更
- 本文实例为大家分享了python实现简单图片物体标注工具的具体代码,供大家参考,具体内容如下# coding: utf-8"&qu
- 本文实例讲述了Python实现子类调用父类的方法。分享给大家供大家参考。具体实现方法如下:python和其他面向对象语言类似,每个类可以拥有
- Instr函数与InstrRev函数大家都应该很熟悉,但是如果你看过《ASP * 站开发实践教程》,你应该注意一下。该书中介绍它们时是很有迷
- 判断汉字if (System.Text.Encoding.GetEncoding("gb2312").GetBytes(
- 最近的工作中涉及到大量的ajax操作,本来该后台做的事也要我来做了.而现在使用的ajax函数是一个后台人员封装的—-但他又是基于jquery
- 本文实例讲述了JavaScript DOM节点操作方法。分享给大家供大家参考,具体如下:使用DOM可以新建HTML元素,也可以删除已有的HT
- 锁机制NOLOCK和READPAST的区别。1. 开启一个事务执行插
- 原始数据原始数据大致是这样子的:每条数据中的四个数据分别是 当前节点名称,节点描述(指代一些需要的节点属性),源节点(即最顶层节点),父节点
- OUTLINE 常见的时间字符串与timestamp之间的转换日期与timestamp之间的转换常见的时间字符串与timesta
- MySQL默认编码是latin1,因业务需要把它转到UTF8。1、导出数据导出表结构 mysqldump -d dataname >
- 引言之前在看 CAP 定理时抱有很大的疑惑,CAP 定理的定义是指在分布式系统中三者只能满足其二,也就是存在分布式 CA 系统的。在网络上查
- 第一次见到《Web标准和SEO应用实践》是在我们UCD书友会《设计沟通十器》新书发布现场,机械工业出版社的朋友还带了很多相关新书过来,当时本
- 在本项目中,将会用Keras来搭建一个稍微复杂的CNN模型来破解以上的验证码。验证码如下: 利用Keras可以快速方便地搭建CNN