获取列表中元素的维度或嵌套级别

get dimension or nesting level of element in list

the_list = ['mob', 'rob', ['hix', ['lu', 'mu'], 'rix', 'mob']]

如何获取列表中元素的嵌套级别? 我正在尝试做这样的事情:

for the_element in the_list:
    the_dimension = get_dimension_of_element(the_element)
    print(the_element, the_dimension)

这将输出:

'mob', 1
'rob', 1
'hix', 2
'lu', 3
'mu', 3
'rix', 2
'mob', 2

您可能想使用递归,因为您所做的取决于元素是列表还是字符串。

def level_print(data, level=1):
    for elem in data:
        if isinstance(elem, (list, tuple)):
             level_print(elem, level + 1)
        else:
            print("{!r}, {}".format(elem, level))

level_print(the_list)

这是一个 returns 结果输出的函数。

def level_enumerate(data, level=1):
    result = []
    for elem in data:
        if isinstance(elem, (list, tuple)):
             result.extend(level_enumerate(elem, level + 1))
        else:
             result.append((elem, level))
    return result

print(level_enumerate(the_list))