鱼C论坛

 找回密码
 立即注册
查看: 2046|回复: 3

[已解决]写一个function判断list深度数

[复制链接]
发表于 2017-9-15 15:34:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
写一个function判断list深度数
最佳答案
2017-9-15 17:44:43
def find_deep(l):
    count = 0 #记录列表深度
    if not isinstance(l,list):
        return count
    else:
        count += 1
        deeps = []
        for i in l:
            deeps.append(find_deep(i))
        deeps.sort()
        count += deeps[-1]
        return count
   
l = [1,2,[1,2,[1,2,[12,2]]],1,2,[2,[2,1],[2,1,3,1,23,[231,[231,[231]]]]]]
print (find_deep(l))
逻辑是: 判断输入参数类型是否是列表,不是的话返回0 ,是的话 列表深度加1,并循环访问列表元素,找出元素中的列表深度,并追加到一个列表中,列表排序后取最大深度+1 后既是输入列表的深度
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-9-15 16:08:04 | 显示全部楼层
你所说的深度是什么意思?指list列表的长度吗?
不知道我理解得对不对,如果要知道一个列表list0它的长度,直接用len(list0)就可以了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-15 17:44:43 | 显示全部楼层    本楼为最佳答案   
def find_deep(l):
    count = 0 #记录列表深度
    if not isinstance(l,list):
        return count
    else:
        count += 1
        deeps = []
        for i in l:
            deeps.append(find_deep(i))
        deeps.sort()
        count += deeps[-1]
        return count
   
l = [1,2,[1,2,[1,2,[12,2]]],1,2,[2,[2,1],[2,1,3,1,23,[231,[231,[231]]]]]]
print (find_deep(l))
逻辑是: 判断输入参数类型是否是列表,不是的话返回0 ,是的话 列表深度加1,并循环访问列表元素,找出元素中的列表深度,并追加到一个列表中,列表排序后取最大深度+1 后既是输入列表的深度
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-9-15 18:01:45 | 显示全部楼层
SuMo 发表于 2017-9-15 17:44
def find_deep(l):
    count = 0 #记录列表深度
    if not isinstance(l,list):

大佬威武
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-2 10:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表