如何得到矩阵中对角线元素的索引?

2024-04-24 09:56:58 发布

您现在位置:Python中文网/ 问答频道 /正文

为了进一步解释,我将举一个例子。我有一个由随机数组成的8x8网格

m = [
[1 ,5, 2, 8, 6, 9, 6, 8]
[2, 2, 2, 2, 8, 2, 2, 1]
[9, 5, 9, 6, 8, 2, 7, 2]
[2, 8, 8 ,6 ,4 ,1 ,8 ,1]
[2, 5, 5, 5, 4, 4, 7, 9]
[3, 9, 8, 8, 9, 4, 1, 1]
[8, 9, 2, 4, 2, 8, 4, 3]
[4, 4, 7, 8, 7, 5, 3, 6]]

我写了一些代码,给出了给定x和y值的对角线列表。例如,如果给定2的x和3的y,则将返回对角线[2,5,8,5,9,8,3]。代码如下:

^{pr2}$

我的问题是,如何获得对角线列表中给定元素的索引。在这个例子中,坐标是x=2y=3(这是数字8),得到的对角线是{},因此元素的索引是2。我也不能用纽比。在


Tags: 代码网格元素列表数字例子对角线pr2
3条回答

首先,在x的情况下

if x<y:
   row = y-x
   idx = y-row

这简化为idx=x,并通过符号化

^{pr2}$

{1>你可以用一个元素的索引来抓取一个元素。 例如:

diagonal = [2,5,8,5,9,8,3]
theIndex = diagonal.index(8)
print(theIndex)

我希望这有帮助。祝你好运!在

我建议您更改函数(或创建一个变量)以返回一个带有坐标和数字的元组,而不仅仅是数字(类似于enumerate()所做的)。这将更容易映射到数字,然后找到数字的坐标

换句话说,如果您:

yield (row,col,m[row][col])

您将能够通过以下方式获得数字:

^{pr2}$

但你也可以在需要的时候操纵坐标

相关问题 更多 >