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切换pip安装源的方法详解
Nov 18 Python
Python中index()和seek()的用法(详解)
Apr 27 Python
python导出chrome书签到markdown文件的实例代码
Dec 27 Python
ubuntu环境下python虚拟环境的安装过程
Jan 07 Python
python使用Matplotlib绘制分段函数
Sep 25 Python
python图像处理入门(一)
Apr 04 Python
python调试神器PySnooper的使用
Jul 03 Python
python json load json 数据后出现乱序的解决方案
Feb 27 Python
Python计算信息熵实例
Jun 18 Python
解决python3输入的坑——input()
Dec 05 Python
Python实现列表拼接和去重的三种方式
Jul 02 Python
python入门学习关于for else的特殊特性讲解
Nov 20 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
THINKPHP+JS实现缩放图片式截图的实现
2010/03/07 PHP
php封装的图片(缩略图)处理类完整实例
2016/10/19 PHP
Prototype Number对象 学习
2009/07/19 Javascript
Blocksit插件实现瀑布流数据无限( 异步)加载
2014/06/20 Javascript
JavaScript中利用jQuery绑定事件的几种方式小结
2016/03/06 Javascript
使用jquery如何获取时间
2016/10/13 Javascript
js实现目录链接,内容跟着目录滚动显示的简单实例
2016/10/15 Javascript
详解vue中computed 和 watch的异同
2017/06/30 Javascript
JS随机排序数组实现方法分析
2017/10/11 Javascript
Angular实现的简单查询天气预报功能示例
2017/12/27 Javascript
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
jquery实现手风琴案例
2020/05/04 jQuery
使用Vue实现一个树组件的示例
2020/11/06 Javascript
基于Python对象引用、可变性和垃圾回收详解
2017/08/21 Python
python学习必备知识汇总
2017/09/08 Python
Python字符串格式化%s%d%f详解
2018/02/02 Python
Python向MySQL批量插数据的实例讲解
2018/03/31 Python
对Python3.6 IDLE常用快捷键介绍
2018/07/16 Python
Django 请求Request的具体使用方法
2019/11/11 Python
Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
2020/06/30 Python
python读取excel进行遍历/xlrd模块操作
2020/07/12 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
2020/08/03 Python
详解CSS中iconfont的使用
2015/08/04 HTML / CSS
html5 canvas 画图教程案例分析
2012/11/23 HTML / CSS
复古斯堪的纳维亚儿童服装:Baby go Retro
2017/09/09 全球购物
国际旅客访问北美最大的汽车租赁提供商:Alamo Rent A Car
2018/06/13 全球购物
英国设计师泳装、沙滩装和比基尼在线精品店:Beach Cafe
2019/08/28 全球购物
广州某公司软件工程师面试题
2014/12/22 面试题
汽修专业学生自我鉴定
2013/11/16 职场文书
上党课的心得体会
2014/09/02 职场文书
社区党支部公开承诺书
2015/04/29 职场文书
校园安全学习心得体会
2016/01/18 职场文书
请学会珍惜眼前,因为人生没有下辈子!
2019/11/12 职场文书
Mysql基础之常见函数
2021/04/22 MySQL
Python中基础数据类型 set集合知识点总结
2021/08/02 Python
详解Python+OpenCV绘制灰度直方图
2022/03/22 Python