如何在Python中的列表列表中添加所有项目

时间:2015-05-12 21:05:08

标签: python recursion nested-lists

我试图制定一个定义,将每个子列表中的所有数字添加到列表列表中。

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]

谢谢,

1 个答案:

答案 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