从嵌套lis的子阵列返回元素索引

2024-03-29 12:31:11 发布

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

我在尝试创建以下函数时遇到了很多问题…horizontal(m)以2D列表(表示矩阵)为输入,搜索算术级数中的4个元素,并返回这些元素的位置(索引)(旁白:它还假设在算术级数中垂直和对角搜索4个元素,但我现在正在进行水平搜索。)我尝试了一系列不同的代码,但似乎没有任何效果,我们在学校的课堂上根本没有使用嵌套列表。请告知

def horizontal(m):

    diff = m[0][1] - m[0][0]
    index=[]

    for i in range(len(m)-1):
        for j in range(len(m[i])):
            if m[i][j+1] - m[i][j] == diff:
                index.append(m[i][j])
                return index

>>>horizontal([[1, 2, 3, 4],
               [2, 5, 6, 9]])
>>>[1] #but I would like it to return: [[0,0],[0,1],[0,2],[0,3]]

另外,我知道这目前并没有将函数的搜索限制为4个元素……我只是想在继续之前弄清楚如何正确返回索引。谢谢大家!


Tags: 函数代码in元素列表forindexlen
1条回答
网友
1楼 · 发布于 2024-03-29 12:31:11

使用index.append([i, j])代替当前的附加行

这本质上是附加一个列表,该列表包含作为第一个元素的i值和作为第二个元素的j值,这就是您想要的

目前,您的代码正在m[i][j]处追加元素,这不是您想要的

编辑(回应评论):

修正错误:-)我不小心忘了(十)把方括号括起来

您需要在for循环之后return列出index(重新缩进return行,使其比函数声明更深一层(它应该与index = []行对齐)

相关问题 更多 >