检查列表是否有一层或两层子列表

2024-07-03 07:23:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图找到一种简单的方法来查看列表的子列表是否包含另一个子列表。如果它有一层,我想要a=1,如果它有两层,我想要a=0。到目前为止我尝试的是:

newElemLines = [[1, 42], [2, 42]]

try:
    newElemLines[0][0][0]
    a = 1
except ValueError:
    a = 0

newelemline也可以像下面的示例中那样,结果应该是a=1

newElemLines = [[[1, 42], [2, 42]], [[1, 42], [2, 42]]]

不幸的是,这不起作用。有人能帮我吗?
编辑:检查zeroteh元素就足够了。你知道吗


Tags: 方法元素编辑示例列表tryvalueerrorexcept
1条回答
网友
1楼 · 发布于 2024-07-03 07:23:04

嗯,这是我编的一个简单的解决方案。这似乎是可行的,但我的感觉是,有一些边缘案件,我没有考虑。但这是一个开始。你知道吗

In [10]: def how_deep(lst, level=0):
    ...:     if isinstance(lst, list):
    ...:         return max(how_deep(l, level+1) for l in lst)
    ...:     return level - 1
    ...:

In [11]: how_deep([1,2])
Out[11]: 0

In [12]: how_deep([[1, 42], [2, 42]])
Out[12]: 1

In [13]: how_deep([[[[1],[2]],[3],[4],5],6,7,[8,[[[[[10]]]]]]])
Out[13]: 6

相关问题 更多 >