首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python使用递归查找列表的深度

python使用递归查找列表的深度
EN

Stack Overflow用户
提问于 2021-12-02 05:30:14
回答 1查看 60关注 0票数 0

我需要使用递归来找出列表的深度,但是我不能使用全局变量,也不能有多个参数。这是我的代码,但我得到了错误,我不能调用深度,因为我不能使用全局变量,当我在函数内部调用它时,当递归发生时,它只是重置变量

代码语言:javascript
复制
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([[[], []], [], [[], []]]))
EN

回答 1

Stack Overflow用户

发布于 2021-12-02 05:37:29

当您遍历每一项时,您希望记录其最大深度,并返回列表中单个子项的最大深度。你可以这样做:

代码语言:javascript
复制
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) + 1
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70194599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档