python实现二维数组的对角线遍历
作者:zzZ_CMing 发布时间:2023-05-15 06:08:01
标签: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实现代码与结果展示:
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= " ")
前辈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()
来源:https://blog.csdn.net/zzZ_CMing/article/details/81035354


猜你喜欢
- Python 10进制数与16进制数相互转换10进制转为16进制在Python中,我们可以使用内置的hex()函数将10进制数转换为16进制
- 话不多说了,先上一张Demo图,实现的功能有:左侧图例、右侧瀑布图、鼠标移入弹出当前坐标对应的数据信息(有优化的空间,大家自由发挥)。图例使
- 1. Python中的异常栈跟踪之前在做Java的时候,异常对象默认就包含stacktrace相关的信息,通过异常对象的相关方法printS
- 使用shell调用一个python文件,并向shell中传入参数,举例如下:p1='wang'p2='shuang&
- 标准库的fnmatch库专门用来进行文件名匹配,支持使用通配符进行字符串匹配。1、fnmatch:判断文件名是否符合特定的模式;2、fnma
- 昨天在书友会上讨论信息分类和方法,有位朋友问:“大家现在讨论的还是几年前那套web2.0的东西,有没有一些新的东西可以分享?”我当时确实感觉
- 前言LogEntry是在后台开发中经常用到的模块,它在admin是默认开启的。可以使用LogEntry模块记录所有用户的操作记录。一方面可以
- python 定时器默认定时器只执行一次,第一个参数单位S,几秒后执行import threadingdef fun_timer(): pr
- 本文实例讲述了Python使用scipy模块实现一维卷积运算。分享给大家供大家参考,具体如下:一 介绍signal模块包含大量滤波函数、 *
- 变量类型ECMAScript变量可能包含两种不同类型的数据值:基本类型和引用类型。基本类型基本类型指的是简单的数据段,5种基本数据类型:un
- 我就废话不多说了,直接上代码吧!pip install pymysqlimport pymysqlimport pandas as pdco
- 1. ASCII码我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制
- 回收站(Recycle Bin)从原理上来说就是一个数据字典表,放置用户删除(drop)掉的数据库对象信息。用户进行删除操作的对象并没有被数
- 本文实例讲述了Python实现将蓝底照片转化为白底照片功能。分享给大家供大家参考,具体如下:import cv2import numpy a
- 在做NLP(自然语言处理)相关任务时,经常会遇到需要识别并提取省、城市、行政区的需求。虽然我们自己通过关键词表一个个查找也能实现提取目的,但
- js汉字简繁转换源代码:<html> <head> <title>汉字简繁转换工具_asp之家</
- 一直很想就搜索结果页写一些心得文章出来,甚至连目录都整理好了可是就是一直没有动手。因为总是觉得还差很多东西需要研究需要分析需要验证。最近也组
- 写这段代码的原因是昨天项目中遇到的一个问题。一同事要求 写一个效果要求鼠标掠过表格行该行颜色改变以突出显示。这个倒不难,那哥们直接为每个Tr
- 如下所示:# 选取等于某些值的行记录 用 == df.loc[df['column_name'] == some_value
- 技巧之一:提高使用Request集合的效率 访问一个ASP集合来提取一个值是费时的、占用计算资源的过程。因为这个操作包含了一系列对相关集合的