我需要编写一个函数(size)来获取列表结构并接收其大小。大小是列表结构中成对括号的数目和整数的数目。 例如:size([[[14],[23,[14]]])=8(5对括号,3个整数)
我写了一个代码,但我找不到一种方法,cnt不会在每次调用递归时赋值为零。 这是我的密码:
def flatten(lst):
if type(lst)==int:
return [lst]
elif lst==[]:
return []
else:
return sum(([x] if not isinstance(x, list) else flatten(x) for x in lst),[])
def size(lst):
cnt=0
if lst== []:
return 1
if type(lst)== int:
return 1
b= str(lst)
ind= b.find('[')
while ind!=-1:
cnt+=1
lst=lst[ind+1:]
return cnt+ size(lst)
return cnt+ len(flatten(lst))
你可以做一些更简单的事情,比如:
相关问题 更多 >
编程相关推荐