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发送邮件实例讲解(python发邮件附件可以使用email模块实现)
Dec 03 Python
CentOS下使用yum安装python-pip失败的完美解决方法
Aug 16 Python
Python 多线程的实例详解
Sep 07 Python
Python基础知识点 初识Python.md
May 14 Python
Python发展简史 Python来历
May 14 Python
django项目简单调取百度翻译接口的方法
Aug 06 Python
Python使用百度api做人脸对比的方法
Aug 28 Python
Python jieba库用法及实例解析
Nov 04 Python
Python中顺序表原理与实现方法详解
Dec 03 Python
python实现AHP算法的方法实例(层次分析法)
Sep 09 Python
python super()函数的基本使用
Sep 10 Python
python入门教程之基本算术运算符
Nov 13 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
一个简洁的多级别论坛
2006/10/09 PHP
PHP+javascript模拟Matrix画面
2006/10/09 PHP
PHPMailer 中文使用说明小结
2010/01/22 PHP
PHP读取文件并可支持远程文件的代码分享
2012/10/03 PHP
深入php var_dump()函数的详解
2013/06/05 PHP
解决File size limit exceeded 错误的方法
2013/06/14 PHP
PHP实现简单的新闻发布系统实例
2015/07/28 PHP
百度地图API使用方法详解
2015/08/25 PHP
PHP进行批量任务处理不超时的解决方法
2016/07/11 PHP
PHP实现可精确验证身份证号码的工具类示例
2018/05/31 PHP
js 代码集(学习js的朋友可以看下)
2009/07/22 Javascript
js和jquery对dom节点的操作(创建/追加)
2013/04/21 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
2015/06/12 Javascript
浅析javascript异步执行函数导致的变量变化问题解决思路
2016/05/13 Javascript
WEB前端开发框架Bootstrap3 VS Foundation5
2016/05/16 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
javascript中json基础知识详解
2017/01/19 Javascript
js eval函数使用,js对象和字符串互转实例
2017/03/06 Javascript
推荐三款不错的图片压缩上传插件(webuploader、localResizeIMG4、LUploader)
2017/04/21 Javascript
javascript input输入框模糊提示功能的实现
2017/09/25 Javascript
bootstrap 路径导航 分页 进度条的实例代码
2018/08/06 Javascript
谈一谈vue请求数据放在created好还是mounted里好
2020/07/27 Javascript
[07:27]DOTA2卡尔工作室 英雄介绍水晶室女篇
2013/06/21 DOTA
Python实现比较两个列表(list)范围
2015/06/12 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
2016/05/05 Python
python3 爬取图片的实例代码
2018/11/06 Python
python 构造三维全零数组的方法
2018/11/12 Python
对python实现合并两个排序链表的方法详解
2019/01/23 Python
查看python安装路径及pip安装的包列表及路径
2019/04/03 Python
python使用python-pptx删除ppt某页实例
2020/02/14 Python
40行Python代码实现天气预报和每日鸡汤推送功能
2020/02/27 Python
如何使用PyCharm将代码上传到GitHub上(图文详解)
2020/04/27 Python
个人汇报材料范文
2014/12/30 职场文书
2015年高中语文教学总结
2015/08/18 职场文书
css中z-index: 0和z-index: auto的区别
2021/08/23 HTML / CSS
Windows Server 2019 安装DHCP服务及相关配置
2022/04/28 Servers