我需要使用递归来找出列表的深度,但是我不能使用全局变量,也不能有多个参数。这是我的代码,但我得到了错误,我不能调用深度,因为我不能使用全局变量,当我在函数内部调用它时,当递归发生时,它只是重置变量
def how_deep(list_of_lists):
for i in list_of_lists:
if type(i) == list:
how_deep(i)
depth += 1
else:
print(depth)
if __name__ == '__main__':
print(how_deep([[[], [], [], [[[]]]], []],))
print(how_deep([]))
print(how_deep([[], []]))
print(how_deep([[[]], [], [[]], [[[]]]]))
print(how_deep([[[[], [[]], [[[]]], [[[[]]]]]]]))
print(how_deep([[[], []], [], [[], []]]))发布于 2021-12-02 05:37:29
当您遍历每一项时,您希望记录其最大深度,并返回列表中单个子项的最大深度。你可以这样做:
def how_deep(list_of_lists):
if not isinstance(list_of_lists, list):
return 0
return max(map(how_deep, list_of_lists), default=0) + 1https://stackoverflow.com/questions/70194599
复制相似问题