python实现二维数组的对角线遍历


Posted in Python onMarch 02, 2019

本文实例为大家分享了python实现二维数组的对角线遍历,供大家参考,具体内容如下

第一种情况:从左上角出发,右下角结束

要完成的事情,就像下图:

python实现二维数组的对角线遍历

话不多说,直接上Python实现代码与结果展示:

# 输出遍历的索引与其对应的值
A = [[1,2,3],
 [4,5,6],
 [7,8,9]]

n = len(A)
for i in range(n+n-1):
 for j in range(i+1):
 k = i-j
 if k<n and k>=0 and j<n:
 print("对应索引:",j,k, " 对应值:",A[j][k])

python实现二维数组的对角线遍历

第二种情况:从右上角出发,左下角结束

情况如下:

python实现二维数组的对角线遍历

原以为这一种的解决方式会和上一种的一样的简单,但是尝试一下失败了,只有一个“曲线救国”的解决办法:依据索引关系输出结果

自己的Python实现代码与结果展示:

A = [[1,2,3],
 [4,5,6],
 [7,8,9]]

# 得到下标索引
size = len(A)
list_i = [] # 第一索引
list_j = [] # 第二索引正序
l1 = []  # 第二索引逆序
for m in range(2*size-1):
 for n in range(m+1):
 k = m-n
 if k<size and k>=0 and n<size:
  list_i.append(n)
  list_j.append(k)

print("第一索引i:\n", list_i)
print("第二索引j:")
for i in range(len(list_j)):
 a = list_j.pop()
 l1.append(a)
print(l1, "\n"*2, "输出结果如下:")

for i in range(len(list_i)):
 print(A[list_i[i]][l1[i]], end= " ")

python实现二维数组的对角线遍历

前辈jiaobuchong的Python实现代码与结果展示:

arr1 = [[1, 2, 3, 4],
 [5, 6, 7, 8],
 [9, 10, 11, 12],
 [13, 14, 15, 16]]

for each_arr in arr1:
 print(each_arr)

tem_arr = [] # 用来记录数组值
rows = len(arr1)
cols = len(arr1[0])


def isValidIndex(x, n):
 return (x >= 0 and x < n)
 # 每一行的每个值的数组下标的差都一样,


for i in range(cols * 2 - 1): # 共输出 cols * 2 - 1 行
 diff = cols - i - 1 # 每一行的差
 for j in range(cols): # 数组中每一个值的下标范围是0到cols
 k = j - diff # 通过一个下标值计算另一个下标值
 if isValidIndex(k, rows): # 剩下就是判断这些下标值是否满足当前的情况, 这一步不怎么好理解
  print(arr1[k][j], ' ', end='')
 print()

python实现二维数组的对角线遍历

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 实现堆排序算法代码
Jun 05 Python
Python文件和目录操作详解
Feb 08 Python
在Python中使用SimpleParse模块进行解析的教程
Apr 11 Python
用TensorFlow实现戴明回归算法的示例
May 02 Python
Flask Web开发入门之文件上传(八)
Aug 17 Python
一个可以套路别人的python小程序实例代码
Apr 09 Python
django之使用celery-把耗时程序放到celery里面执行的方法
Jul 12 Python
flask框架单元测试原理与用法实例分析
Jul 23 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
Sep 04 Python
python 利用turtle库绘制笑脸和哭脸的例子
Nov 23 Python
OpenCV-Python实现怀旧滤镜与连环画滤镜
Jun 09 Python
Python 键盘事件详解
Nov 11 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
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
Mar 01 #Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
Mar 01 #Python
You might like
Jquery 表单取值赋值的一些基本操作
2009/10/11 Javascript
jQuery:节点(插入,复制,替换,删除)操作
2013/03/04 Javascript
一个小例子解释如何来阻止Jquery事件冒泡
2014/07/17 Javascript
JavaScript实现弹出子窗口并传值给父窗口
2014/12/18 Javascript
基于jquery实现可定制的web在线富文本编辑器附源码下载
2015/11/17 Javascript
jQuery版本升级踩坑大全
2016/01/12 Javascript
浅谈JavaScript for循环 闭包
2016/06/22 Javascript
JS日程管理插件FullCalendar简单实例
2017/02/07 Javascript
JS实现简单的天数计算器完整实例
2017/04/28 Javascript
微信小程序图片自适应支持多图实例详解
2017/06/21 Javascript
微信小程序 rich-text的使用方法
2017/08/04 Javascript
详谈DOM简介及节点、属性、查找节点的方法
2017/11/16 Javascript
原生JS实现的多个彩色小球跟随鼠标移动动画效果示例
2018/02/01 Javascript
Vue 中使用富文本编译器wangEditor3的方法
2019/09/26 Javascript
微信小程序自定义组件components(代码详解)
2019/10/21 Javascript
如何使用webpack打包一个库library的方法步骤
2019/12/18 Javascript
[36:33]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.29
2020/12/02 DOTA
Python探索之创建二叉树
2017/10/25 Python
Python工厂函数用法实例分析
2018/05/14 Python
替换python字典中的key值方法
2018/07/06 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
2020/01/14 Python
Python如何转换字符串大小写
2020/06/04 Python
python如何提升爬虫效率
2020/09/27 Python
详解用 python-docx 创建浮动图片
2021/01/24 Python
zooplus意大利:在线宠物商店
2019/08/07 全球购物
俄罗斯在线水暖商店:Perfecto.ru
2019/10/25 全球购物
进程的查看和调度分别使用什么命令
2013/12/14 面试题
实习教师自我鉴定
2013/09/27 职场文书
公司合作协议书范本
2014/04/18 职场文书
俞敏洪北大演讲稿
2014/05/22 职场文书
义诊活动通知
2015/04/24 职场文书
行政撤诉申请书
2015/05/18 职场文书
培养联系人考察意见
2015/06/01 职场文书
运动会广播稿300字
2015/08/19 职场文书
Java基础之详解HashSet的使用方法
2021/06/30 Java/Android
Win10 Anaconda安装python-pcl
2022/04/29 Servers