Python 递归列表计数
我有一个学校作业,我需要计算f.e.中的列表数量。此列表:Python 递归列表计数,python,list,recursion,count,Python,List,Recursion,Count,我有一个学校作业,我需要计算f.e.中的列表数量。此列表: ['a'、['house'、[2]、[3]、[[2]]、[b'] 如果不使用全局变量,我就无法思考如何递归地执行它。如果您能给我任何帮助,我将不胜感激 我试着这样做: def zoznam_prvkov(zoznam): z = [] for i in range(len(zoznam)): if isinstance(zoznam[i], list) == False: z.a
['a'、['house'、[2]、[3]、[[2]]、[b']
如果不使用全局变量,我就无法思考如何递归地执行它。如果您能给我任何帮助,我将不胜感激
我试着这样做:
def zoznam_prvkov(zoznam):
z = []
for i in range(len(zoznam)):
if isinstance(zoznam[i], list) == False:
z.append(zoznam[i])
else:
zoznam_prvkov(zoznam[i])
return z
但是它只返回[1,2,3,6,8]如果项目不是列表,则返回
0
,否则将其计为列表并汇总所有项目的计数:
def count_列表(x):
如果不存在(x,列表):
返回0
返回1+总和(x中项目的计数列表(项目))
您可以使用Python中的递归函数来实现这一点,它基本上是在函数本身中调用函数的过程
def count(x: list):
if isinstance(x, list):
return sum(count(item) for item in x) + 1
else:
return 0
lst = ['a', ['house', [2], 3], [], [[[2]]], 'b']
print(count(lst)) # 7
提示,制作一个函数,返回列表中的列表数…请从中重复和。“演示如何解决此编码问题”不是堆栈溢出问题。我们希望您做出诚实的尝试,然后就您的算法或技术提出具体问题。。这表明需要的集合对于堆栈溢出来说过于广泛。建议您先搜索。我可以帮你。