在二维矩阵中查找值的索引

发布于 2021-01-29 17:33:59

我有一个形式的矩阵,

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

我想获取例如位于(2,2)的9的索引。

到目前为止,我一直在尝试做的事情。

for i,j in enumerate(mymatrix):
   for k,l in enumerate(j):
     if l==9:
         print i,k

有没有更好的方法可以做到这一点。优化,有人吗?提前致谢。

关注者
0
被浏览
139
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    如果要让值出现的所有位置,可以使用以下列表推导式将其val设置为要搜索的内容

    [(index, row.index(val)) for index, row in enumerate(mymatrix) if val in row]
    

    例如:

    >>> mymatrix=[[1,2,9],[4,9,6],[7,8,9]]
    >>> val = 9
    >>> [(index, row.index(val)) for index, row in enumerate(mymatrix) if val in row]
    [(0, 2), (1, 1), (2, 2)]
    

    编辑

    这不是真的,因为它会得到所有出现,它只会在给定行中得到该值的第一次出现。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看