代码之家  ›  专栏  ›  技术社区  ›  Zi San

在嵌套列表中搜索项,然后返回项的索引

  •  0
  • Zi San  · 技术社区  · 6 年前

    因此,我试图编写一个名为find\u treasure的函数,该函数将2D列表作为参数。该函数的目的是搜索给定的2D列表,并返回“x”所在位置的索引。

    def find_treasure(my_list):
    
        str1 = 'x'
        if str1 in [j for i in (my_list) for j in i]:
        index = (j for i in my_list for j in i).index(str1)
        return(index)
    
    
    treasure_map = [[' ', ' ', ' '], [' ', 'x', ' '], [' ', ' ', ' ']]
    
    print(find_treasure(treasure_map))
    

    然而,我似乎无法让函数返回索引,我也尝试过使用枚举函数,但要么是使用错误。

    2 回复  |  直到 6 年前
        1
  •  0
  •   Rakesh    6 年前

    使用 enumerate

    def find_treasure(my_list):
        str1 = 'x'
        for i,n  in enumerate(my_list):
            for j, m in enumerate(n):
                if m == str1:
                    return (i, j)
    
    treasure_map = [[' ', ' ', ' '], [' ', 'x', ' '], [' ', ' ', ' ']]
    print(find_treasure(treasure_map))
    

    输出:

    (1, 1)
    
        2
  •  0
  •   Igor Yalovoy    6 年前

    使用 index 作用

    def find_treasure(my_list):
        str1 = 'x'
        for i,n  in enumerate(my_list):
            try:
              return (i, n.index(str1))
            except ValueError:
              pass
    
    treasure_map = [[' ', ' ', ' '], [' ', 'x', ' '], [' ', ' ', ' ']]
    print(find_treasure(treasure_map))
    

    输出

    (1, 1)