我遇到了一些问题,这困扰了我的Python初学者知识,我希望有人能指出我正确的方向。
我生成了一个嵌套列表,每个嵌套列表由两个(对不起,我的错!)值组成,例如:
[[1, 0],[1, 2],[2, 9],[3, 0],[3, 8],[3, 1]]
第一个值始终指定一天,第二个值始终是我真正感兴趣的值。但是我需要总结在给定日期发生的所有第二个值,如下所示: 例如第 1 天为 0+2,第 2 天为 9,第 3 天为 0+8+1
并生成一个实际上看起来像[[1,2][2,9][3,9]]
的列表,同样每个第一个值给出了我求和的日期和第二个值是当天所有值的总和。
我知道这是一个非常基本的问题,我知道如何解决它,例如gawk 或 fortran,但我想学习如何以 python 方式做到这一点。我研究过使用 zip/map 但我不知道如何针对这个特定问题进行设置。我希望有人能指出我正确的方向
最佳答案
您可以将键放入字典中并将计数存储在值中。像这样:
#!/usr/bin/python
# -*- coding: utf-8 -*-
a = [[1, 0],[1, 2],[2, 9],[3, 0],[3, 8],[3, 1]]
res = {}
for i in a:
if i[0] in res:
res[i[0]] += i[1]
else:
res[i[0]] = i[1]
print res
输出:
{1: 2, 2: 9, 3: 9}
此输出采用字典格式。您可以将其转换为您喜欢的列表格式。
关于python - 当项目更改时对嵌套列表中的值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28895287/