python - 计算深度或嵌套列表的最深级别

标签 python list nested levels

A 有一个真正的问题(并且很头疼)的作业......

我正在上一门介绍性编程类(class),我必须编写一个函数,给定一个列表,它将返回它所达到的“最大”深度... 例如:[1,2,3] 将返回 1,[1,[2,3]] 将返回 2...

我已经写了这段代码(这是我能得到的最好的T_T)

def flat(l):
    count=0
    for item in l:
        if isinstance(item,list):
            count+= flat(item)
    return count+1

但是,它显然不能正常工作,因为如果有列表不计入最大深度,它仍然会提高计数器...

例如:当我使用带有 [1,2,[3,4],5,[6],7] 的函数时,它应该返回 2,但它返回 3...

任何想法或帮助将不胜感激^^非常感谢!我已经为此苦苦挣扎了好几个星期了...

最佳答案

这是编写函数的一种方式

depth = lambda L: isinstance(L, list) and max(map(depth, L))+1

我认为您缺少的想法是使用 max()

关于python - 计算深度或嵌套列表的最深级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6039103/

相关文章:

python - While 循环给出不同的返回和打印结果?

python - 使用 python 遵循正态分布从列表中选择一个元素

Python关于绘制对象居中的坐标系问题

python - 列出扩展的奇怪行为

python - 火车测试拆分 scikit-learn 的问题

c# - 在 List<Dictionary<string, object>> 中搜索一个值

scala - 使用重复键将对象列表转换为 map

python - 如何在 python 中解析具有多个嵌套子项的 .xml 文件?

MySQL 可以替代嵌套查询吗?

java - 为什么在构建器设计模式中使用嵌套类,为什么不能使用setter在同一个类中构建对象