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 用Redis简单实现分布式爬虫的方法
Nov 23 Python
Python科学计算包numpy用法实例详解
Feb 08 Python
使用Python搭建虚拟环境的配置方法
Feb 28 Python
python实现简易数码时钟
Feb 19 Python
对python 读取线的shp文件实例详解
Dec 22 Python
python 猴子补丁(monkey patch)
Jun 26 Python
如何为Python终端提供持久性历史记录
Sep 03 Python
np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴
Nov 30 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
Jan 10 Python
python实现根据给定坐标点生成多边形mask的例子
Feb 18 Python
django 读取图片到页面实例
Mar 27 Python
Python3.7下安装pyqt5的方法步骤(图文)
May 12 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
四月新番又没了,《Re:从零开始的异世界生活》第二季延期至7月播出
2020/05/06 日漫
smarty内置函数section的用法
2015/01/22 PHP
cakephp打印sql语句的方法
2015/02/13 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
2016/10/17 PHP
FireFox与IE 下js兼容触发click事件的代码
2008/11/20 Javascript
前端开发部分总结[兼容性、DOM操作、跨域等](持续更新)
2010/03/04 Javascript
jquery DIV撑大让滚动条滚到最底部代码
2013/06/06 Javascript
Javascript递归打印Document层次关系实例分析
2015/05/15 Javascript
AngularJS基础 ng-selected 指令简单示例
2016/08/03 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
2017/01/06 Javascript
canvas实现流星雨的背景效果
2017/01/13 Javascript
js 将input框中的输入自动转化成半角大写(税号输入框)
2017/02/16 Javascript
javascript 中的try catch应用总结
2017/04/01 Javascript
深入掌握 react的 setState的工作机制
2017/09/27 Javascript
Vue 实现登录界面验证码功能
2020/01/03 Javascript
js实现移动端吸顶效果
2020/01/08 Javascript
微信小程序实现抖音播放效果的实例代码
2020/04/11 Javascript
Python中特殊函数集锦
2015/07/27 Python
PyCharm设置护眼背景色的方法
2018/10/29 Python
对python使用telnet实现弱密码登录的方法详解
2019/01/26 Python
python 实现return返回多个值
2019/11/19 Python
Python-openCV读RGB通道图实例
2020/01/17 Python
Python统计文本词汇出现次数的实例代码
2020/02/27 Python
Python之变量类型和if判断方式
2020/05/05 Python
python 写函数在一定条件下需要调用自身时的写法说明
2020/06/01 Python
Python接收手机短信的代码整理
2020/08/02 Python
Ego Shoes官网:英国时髦鞋类品牌
2020/10/19 全球购物
银行财务部实习生的自我鉴定
2013/11/27 职场文书
培训主管岗位职责
2014/02/01 职场文书
计算机专业求职信
2014/06/02 职场文书
师德承诺书
2015/01/20 职场文书
小兵张嘎观后感300字
2015/06/03 职场文书
小学生读书笔记范文
2015/06/30 职场文书
升学宴学生致辞
2015/09/29 职场文书
2019年世界儿童日宣传标语
2019/11/22 职场文书
浅谈 JavaScript 沙箱Sandbox
2021/11/02 Javascript