我有一个列表p = [[[[[[[[1, 2, 3]]]]]]]],我想得到列表中的项目的计数,包括空列表,所以对于这个列表我应该得到10.我试图枚举列表像 -
for idx, item in enumerate(p):
count = count + idx
Run Code Online (Sandbox Code Playgroud)
但我无法在那里得到空名单.请指教.
以下较短版本的代码:
>>> 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)