我试图制定一个定义,将每个子列表中的所有数字添加到列表列表中。
def MassAddition(_list):
output = []
total = 0
for i in _list:
if isinstance(i, list):
output.append(MassAddition(i))
else:
total = total + i
output.append(total)
return output
问题是它在结尾处返回列表中的额外项目。我认为它是因为我使total = 0然后将它附加到for循环之外的输出列表中。有人可以帮我清理一下吗? PS。该定义应该能够处理任何级别的嵌套列表。
例如:
input = [[0,1,2], [2,1,5],[2,2,2],2,2,1]
desiredoutput = [[3],[8],[6],5]
谢谢,
答案 0 :(得分:0)
您也可以检查其他类型的数字。如果它们只能是int
:
def mass_addition(lst):
output = []
total = 0
extra_flag = False
for i in lst:
if isinstance(i, list):
output.append(mass_addition(i))
elif isinstance(i, int):
extra_flag = True
total += i
if extra_flag:
output.append(total)
return output