从嵌套列表的子数组返回元素的索引
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从嵌套列表的子数组返回元素的索引相关的知识,希望对你有一定的参考价值。
我在尝试创建以下函数时遇到了很多问题...水平(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个元素......我只想弄清楚如何在继续之前正确返回索引。谢谢!
答案
使用index.append([i, j])
而不是当前的追加行。
这基本上是附加一个列表,其中包含i
的值作为其第一个元素,j
的值作为其第二个元素,这是你想要的。
目前,您的代码在m[i][j]
附加元素的值,这不是您想要的。
编辑(回应评论):
修正了错误:-)我不小心忘了(十)把方括号括起来。
在return
循环之后你需要index
for
列表(重新加入你的return
线,这样它的一个缩进级别比函数的声明更深(它应该与index = []
线对齐))。
以上是关于从嵌套列表的子数组返回元素的索引的主要内容,如果未能解决你的问题,请参考以下文章