如何使用Counter添加列表中的所有数字?

时间:2018-01-17 00:45:14

标签: python list counter

我有一个这样的清单:

[1, 1, 78, 7701], [1, 2, 78, 7527], [1, 3, 78, 8825], [1, 4, 78, 8859], [1, 5, 78, 9043], [1, 6, 78, 9208], [1, 7, 78, 8084], [1, 8, 78, 7611], [1, 9, 78, 9172], [1, 10, 78, 9089], [1, 11, 78, 9210], [1, 12, 78, 9259], [1, 13, 78, 9138], [1, 14, 78, 8299], [1, 15, 78, 7771], [1, 16, 78, 9458], [1, 17, 78, 9339], [1, 18, 78, 9120], [1, 19, 78, 9226]

第一列是月份。我想使用Counter添加最后一列中的所有数字(在同一个月内)。

3 个答案:

答案 0 :(得分:1)

您可以使用字典来跟踪每个月的总和:

arr = [[1, 1, 78, 7701], [1, 2, 78, 7527], [2, 3, 78, 8825]]

sums = {}
for a in arr:
    sums[a[0]] = sums.get(a[0], 0) + a[3]

print(sums)

输出:

{1: 15228, 2: 8825}

答案 1 :(得分:0)

由于您提到要使用Counter,因此您可以这样做:

result = Counter()
for (month, _, _, s) in arr:
    result[month] += s
print(result)

哪个输出:

Counter({1: 165939})

答案 2 :(得分:-1)

您可以使用this.formSearch.controls['name'].updateValueAndValidity()将每列分组并总结。

zip