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 相关文章推荐
linux下安装easy_install的方法
Feb 10 Python
在Python中利用Into包整洁地进行数据迁移的教程
Mar 30 Python
python实现的DES加密算法和3DES加密算法实例
Jun 03 Python
python清除字符串里非数字字符的方法
Jul 02 Python
在MAC上搭建python数据分析开发环境
Jan 26 Python
Python基础之getpass模块详细介绍
Aug 10 Python
python使用装饰器作日志处理的方法
Jul 11 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
Mar 09 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
Mar 30 Python
音频处理 windows10下python三方库librosa安装教程
Jun 20 Python
浅谈Python3中datetime不同时区转换介绍与踩坑
Aug 02 Python
Python Django获取URL中的数据详解
Nov 01 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中的reflection反射机制测试例子
2014/08/05 PHP
php简单操作mysql数据库的类
2015/04/16 PHP
PHP中Trait及其应用详解
2017/02/14 PHP
详解PHP实现支付宝小程序用户授权的工具类
2018/12/25 PHP
PHP 实现缩略图
2021/03/09 PHP
js的alert样式如何更改如背景颜色
2014/01/22 Javascript
window.open()详解及浏览器兼容性问题示例探讨
2014/05/29 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
10个在JavaScript开发中常遇到的BUG
2017/12/18 Javascript
基于Vue实现图片在指定区域内移动的思路详解
2018/11/11 Javascript
10行代码实现微信小程序滑动tab切换
2018/12/28 Javascript
layui-table表复选框勾选的所有行数据获取的例子
2019/09/13 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
[08:53]DOTA2每周TOP10 精彩击杀集锦vol.9
2014/06/26 DOTA
Django基础之Model操作步骤(介绍)
2017/05/27 Python
python将txt文档每行内容循环插入数据库的方法
2018/12/28 Python
在pycharm中设置显示行数的方法
2019/01/16 Python
python3.6+selenium实现操作Frame中的页面元素
2019/07/16 Python
Python在cmd上打印彩色文字实现过程详解
2019/08/07 Python
python opencv调用笔记本摄像头
2019/08/28 Python
tensorflow 环境变量设置方式
2020/02/06 Python
HTML5开发动态音频图的实现
2020/07/02 HTML / CSS
新秀丽拉杆箱美国官方网站:Samsonite美国
2016/07/25 全球购物
澳大利亚领先的运动鞋商店:Hype DC
2018/03/31 全球购物
英国健康和美容技术产品购物网站:CurrentBody
2019/07/17 全球购物
芭比波朗加拿大官方网站:Bobbi Brown Cosmetics CA
2020/11/05 全球购物
新学期开学寄语
2014/01/18 职场文书
信息专业毕业生五年职业规划参考
2014/02/06 职场文书
信用社主任竞聘演讲稿
2014/05/23 职场文书
团队精神口号
2014/06/06 职场文书
拾金不昧表扬信怎么写
2015/05/04 职场文书
超市员工辞职信范文
2015/05/12 职场文书
2015年党总支工作总结
2015/05/25 职场文书
中秋节主题班会
2015/08/14 职场文书
SpringBoot+Redis实现布隆过滤器的示例代码
2022/03/17 Java/Android
详解在SQLPlus中实现上下键翻查历史命令的功能
2022/03/18 SQL Server