gpt4 book ai didi

python - 递归函数来计算嵌套列表中的所有项目?

转载 作者:行者123 更新时间:2023-12-01 05:25:42 25 4
gpt4 key购买 nike

我正在尝试创建一个方法来计算嵌套列表中的所有项目。所以 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

最佳答案

    if stack:

空列表在 bool 上下文中被视为 false。您需要if stack is not None

为什么要使用递归呢?你不需要它。

def count(self):
return sum(len(item) for item in self._items)

关于python - 递归函数来计算嵌套列表中的所有项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21370320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com