获取列表中元素的维度或嵌套级别
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))
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))