python怎么实现二维数组的对角线遍历
导读:本文共1513.5字符,通常情况下阅读需要5分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 第一种情况:从左上角出发,右下角结束要完成的事情,就像下图:话不多说,直接上Python实现代码与结果展示:#输出遍历的索引与其对应的值A=[[1,2,3],[4,5,6],[7,8,9]]n=len(A)foriinrange(n+n-1):forjinrange(i+1):k=i-jifk<nandk>=0andj<n:... ...
音频解说
目录
(为您整理了一些要点),点击可以直达。第一种情况:从左上角出发,右下角结束
要完成的事情,就像下图:
话不多说,直接上Python实现代码与结果展示:
#输出遍历的索引与其对应的值A=[[1,2,3],[4,5,6],[7,8,9]]n=len(A)foriinrange(n+n-1):forjinrange(i+1):k=i-jifk<nandk>=0andj<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=[]#第二索引逆序forminrange(2*size-1):forninrange(m+1):k=m-nifk<sizeandk>=0andn<size:list_i.append(n)list_j.append(k)print("第一索引i:\n",list_i)print("第二索引j:")foriinrange(len(list_j)):a=list_j.pop()l1.append(a)print(l1,"\n"*2,"输出结果如下:")foriinrange(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]]foreach_arrinarr1:print(each_arr)tem_arr=[]#用来记录数组值rows=len(arr1)cols=len(arr1[0])defisValidIndex(x,n):return(x>=0andx<n)#每一行的每个值的数组下标的差都一样,foriinrange(cols*2-1):#共输出cols*2-1行diff=cols-i-1#每一行的差forjinrange(cols):#数组中每一个值的下标范围是0到colsk=j-diff#通过一个下标值计算另一个下标值ifisValidIndex(k,rows):#剩下就是判断这些下标值是否满足当前的情况,这一步不怎么好理解print(arr1[k][j],'',end='')print()
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:
python怎么实现二维数组的对角线遍历的详细内容,希望对您有所帮助,信息来源于网络。