计算嵌套列表中特定元素的深度

时间:2020-07-14 14:15:50

标签: python

我试图弄清楚如何在嵌套列表中获取某些元素的级别。

my_list = ["a", ["b", ["c", "d"], "e"], "f", ["g", ["h"]]]

要获取元素“ e”的级别,我尝试制作一个递归函数,但失败了……

def get_level(letter, my_list):
    cnt = 0
    for sub_list in my_list:
        if letter in sub_list:
            cnt += 1
            return cnt
        else:
            get_level(letter, sub_list)

letter = "e"
print(get_level(letter, my_list))

结果应为2

请告诉我是否有办法。

1 个答案:

答案 0 :(得分:1)

有这样的东西:

def find_e(arr, index):
  if 'e' in arr:
    return index
  else:
    for element in arr:
      if isinstance(element, list):
        return find_e(element, index + 1)

my_list = ["a", ["b", ["c", "d"], "e"], "f", ["g", ["h"]]]
print('Index is: ',find_e(my_list, 0))