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中的元类编程入门指引
Apr 15 Python
Python学习之用pygal画世界地图实例
Dec 07 Python
Win8下python3.5.1安装教程
Jul 29 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
Oct 26 Python
如何更优雅地写python代码
Jul 02 Python
Python中的类与类型示例详解
Jul 10 Python
检测python爬虫时是否代理ip伪装成功的方法
Jul 12 Python
Python3 列表,数组,矩阵的相互转换的方法示例
Aug 05 Python
对Python中一维向量和一维向量转置相乘的方法详解
Aug 26 Python
Python+Appium实现自动化测试的使用步骤
Mar 24 Python
Python实现动态循环输出文字功能
May 07 Python
python3.9.1环境安装的方法(图文)
Feb 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
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
Mar 01 #Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
Mar 01 #Python
You might like
php 文章采集正则代码
2009/12/28 PHP
教你php如何实现验证码
2016/01/20 PHP
一个简单的jquery进度条示例
2014/04/28 Javascript
DOM节点删除函数removeChild()用法实例
2015/01/12 Javascript
JavaScript对象数组的排序处理方法
2015/10/21 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
2015/12/26 Javascript
Jquery zTree 树控件异步加载操作
2016/02/25 Javascript
javaScript数组迭代方法详解
2016/04/14 Javascript
JS使用eval()动态创建变量的方法
2016/06/03 Javascript
JavaScript组件开发之输入框加候选框
2017/03/10 Javascript
Webpack执行命令参数详解
2017/06/17 Javascript
JavaScript全屏和退出全屏事件总结(附代码)
2017/08/17 Javascript
解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题
2018/09/27 Javascript
Python操作SQLite简明教程
2014/07/10 Python
python使用正则表达式分析网页中的图片并进行替换的方法
2015/03/26 Python
Python中动态创建类实例的方法
2017/03/24 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
2017/12/12 Python
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
2018/02/05 Python
python3爬虫学习之数据存储txt的案例详解
2019/04/24 Python
详解PANDAS 数据合并与重塑(join/merge篇)
2019/07/09 Python
python基于pdfminer库提取pdf文字代码实例
2019/08/15 Python
pytorch标签转onehot形式实例
2020/01/02 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
2020/03/30 Python
如何利用python检测图片是否包含二维码
2020/10/15 Python
CSS3圆角和渐变2种常用功能详解
2016/01/06 HTML / CSS
Supersmart英国:欧洲市场首批食品补充剂供应商之一
2018/05/05 全球购物
澳大利亚墨尔本的在线时装店:LORETA
2018/09/14 全球购物
会计电算化专业个人的自我评价
2013/11/24 职场文书
军训 自我鉴定
2014/02/03 职场文书
家长建议怎么写
2014/05/15 职场文书
村支部书记群众路线对照检查材料思想汇报
2014/10/08 职场文书
优秀英文求职信范文
2015/03/19 职场文书
回门宴新娘答谢词
2015/09/29 职场文书
2007年老电脑安装win11会怎么样? 网友实测win11在老电脑运行良好
2021/11/21 数码科技
「偶像大师 MILLION LIVE!」七尾百合子手办开订
2022/03/21 日漫
vue如何清除浏览器历史栈
2022/05/25 Vue.js