返回总和列表

时间:2017-03-22 09:15:29

标签: python nested-loops nested-lists

首先,我对python和编程都很陌生,而且我很难掌握嵌套for循环和嵌套列表的概念。 在下面的代码中,我试图将每个列表放在列表list1中,并使用for循环对它们求和。我知道范围功能会以某种方式提供帮助。

代码:

def sum_list(list1):
    list_of_sums = []
    total = 0
    for l in list1:
        for value in l:
            total = total + value
            list_of_sums.append(total)
        return list_of_sums

输入测试:

list1 = [[4, 7, 9], [4, 5, 2], [4, 5, 6]]
print(sum_list(list1))

输出:

[4, 11, 20]

期望的输出:

[20, 11, 15]

2 个答案:

答案 0 :(得分:0)

你可以通过使用列表理解来实现这一点,它是python提供的最好的东西之一。它真的使你的代码变得简单易懂。 以下发布我的帮助。如果您愿意,可以在列表理解上进行更多搜索。

http://treyhunner.com/2015/12/python-list-comprehensions-now-in-color/

def sum_list(list1):
    return [sum(inner_list) for inner_list in list1]

print sum_list([[4, 7, 9], [4, 5, 2], [4, 5, 6]])

答案 1 :(得分:0)

您的代码中存在一些逻辑问题。在重置总计以及何时将结果附加到list_of_sums时要仔细考虑。

def sum_list(list):
    list_of_sums = []
    for sublist in list:
        total = 0
        for value in sublist:
            total += value
        list_of_sums.append(total)
    return list_of_sums