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操作MySQL数据库的方法分享
May 29 Python
Python的Django框架下管理站点的基本方法
Jul 17 Python
理解生产者消费者模型及在Python编程中的运用实例
Jun 26 Python
Python实现字符串与数组相互转换功能示例
Sep 22 Python
Python有序字典简单实现方法示例
Sep 28 Python
python spyder中读取txt为图片的方法
Apr 27 Python
Python告诉你木马程序的键盘记录原理
Feb 02 Python
对Django的restful用法详解(自带的增删改查)
Aug 28 Python
安装PyInstaller失败问题解决
Dec 14 Python
Python内置方法和属性应用:反射和单例(推荐)
Jun 19 Python
浅谈PyTorch中in-place operation的含义
Jun 27 Python
python中selenium库的基本使用详解
Jul 31 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文件目录基础操作
2014/11/11 PHP
php封装的连接Mysql类及用法分析
2015/12/10 PHP
jQuery select的操作实现代码
2009/05/06 Javascript
浅谈js中变量初始化
2015/02/03 Javascript
fastclick插件导致日期(input[type=&quot;date&quot;])控件无法被触发该如何解决
2015/11/09 Javascript
node.js-v6新版安装具体步骤(分享)
2017/09/06 Javascript
jQuery实现checkbox即点即改批量删除及中间遇到的坑
2017/11/11 jQuery
jQuery实现弹窗下底部页面禁止滑动效果
2017/12/19 jQuery
JS 遍历 json 和 JQuery 遍历json操作完整示例
2019/11/11 jQuery
javascript设计模式 ? 单例模式原理与应用实例分析
2020/04/09 Javascript
Vue实现购物小球抛物线的方法实例
2020/11/22 Vue.js
天翼开放平台免费短信验证码接口使用实例
2013/12/18 Python
python判断计算机是否有网络连接的实例
2018/12/15 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
2019/02/12 Python
Gauss-Seidel迭代算法的Python实现详解
2019/06/29 Python
python中property和setter装饰器用法
2019/12/19 Python
Python tkinter三种布局实例详解
2020/01/06 Python
浅谈keras的深度模型训练过程及结果记录方式
2020/01/24 Python
解决python3插入mysql时内容带有引号的问题
2020/03/02 Python
详解Anaconda 的安装教程
2020/09/23 Python
CSS3中Transform动画属性用法详解
2016/07/04 HTML / CSS
CSS3网格的三个新特性详解
2014/04/04 HTML / CSS
CSS3 旋转立方体问题详解
2020/01/09 HTML / CSS
请解释流与文件有什么不同
2016/07/29 面试题
企业节能减排实施方案
2014/03/19 职场文书
经济信息系毕业生自荐信
2014/06/02 职场文书
2014预备党员党课学习心得范文
2014/07/08 职场文书
四风问题对照检查材料
2014/09/22 职场文书
学校群众路线专项整治方案
2014/10/31 职场文书
投标承诺函格式
2015/01/21 职场文书
佛光寺导游词
2015/02/10 职场文书
2015年双拥工作总结
2015/04/08 职场文书
优质服务心得体会(共4篇)
2016/01/22 职场文书
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
2021/07/26 Java/Android
Python实现抖音热搜定时爬取功能
2022/03/16 Python
JS轻量级函数式编程实现XDM三
2022/06/16 Javascript