这是一个Python程序。这是我到目前为止所拥有的。程序当前忽略多个嵌套列表,仅计算单个层值。检查列表的方法必须是索引。
def DigitCount(lst):
if len(lst)==0:
return 0
val = DigitCount(lst[1:])
if len(lst) > 0:
if type(lst[0]) != list:
if type(lst[0]).isdigit():
return 1 + val
if type(lst[0])==list:
DigitCount(lst[0])
return val
return val
答案 0 :(得分:1)
您可以使用sum
简化逻辑,对列表调用DigitCount(ele)
的元素进行递归,或者检查元素是否为int
并对所有元素求和结果:
def DigitCount(lst):
return sum(DigitCount(ele) if isinstance(ele, list) else isinstance(ele, int)
for ele in lst)
输出:
In [22]: DigitCount([[1, 2, 3], [1, 2, 3, [4, 5, [3, 4, 3]]]])
Out[22]: 11
isinstance(ele, int)
返回0或1,因此每个递归调用返回1或0,因此这是一个对所有值求和的简单情况。