【发布时间】:2014-01-27 06:55:49
【问题描述】:
我正在尝试创建一种方法来计算嵌套列表中的所有项目。所以count([[3, 2] , [2]]) == 3。但是,它是一个 Class 属性,所以我不能简单地这样做:
def count(L, target):
s = 0
for i in L:
if isinstance(i, list):
s += count(i, target)
else:
if i == target:
s += 1
return s
相反,我尝试这样做,但出现最大递归深度错误。我不确定为什么。在查看代码之前,请记住以下几点:(1) 我希望给定的基本列表仅包含列表,因此其格式为:[ [], ]。此外 (2) 子列表将不包含除项目之外的任何内容:[ [item, item], [item] ]:
def count(self, stack=None):
n = 0
if stack:
n += len(stack)
else:
for i in self._items:
if isinstance(i, list):
n += self.count(i)
return n
【问题讨论】:
标签: python list recursion nested