在Python中计算列表中的子列表

Var*_*run 2 python

我有一个列表p = [[[[[[[[1, 2, 3]]]]]]]],我想得到列表中的项目的计数,包括空列表,所以对于这个列表我应该得到10.我试图枚举列表像 -

for idx, item in enumerate(p):
    count = count + idx
Run Code Online (Sandbox Code Playgroud)

但我无法在那里得到空名单.请指教.

jam*_*lak 6

以下较短版本的代码:

>>> def recur_len(l):
        return sum(1 + recur_len(item) if isinstance(item,list) else 1 for item in l)

>>> recur_len([[[[[[[[1, 2, 3]]]]]]]])
10
Run Code Online (Sandbox Code Playgroud)

更详细的代码

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

>>> recur_len([[[[[[[[1, 2, 3]]]]]]]])
10
Run Code Online (Sandbox Code Playgroud)