首页 > 解决方案 > 如何从 Python 中的 aa 列表的不同列表中添加元组的数量?

问题描述

这就是我所拥有的(在 python 版本 3.7.4 中):

P= [[('Lista-A', 1), ('Lista-X', 1), ('Lista-Z', 4)], [('Lista-A', 2), ('Lista-X', 0), ('Lista-Z', 1)], [('Lista-A', 5), ('Lista-X', 1), ('Lista-Z', 0)], [('Lista-A', 0), ('Lista-X', 1), ('Lista-Z', 4)]]

我正在尝试将与“Lista-A”、“Lista-X”和“Lista-Z”相关的所有数字相加,这样我就可以得到类似的东西(只是一个包含相关数字总和的元组列表每个“Lista”):

[('Lista-A', 8), ('Lista-X', 3), ('Lista-Z', 9)]

我试过使用 for 循环,但我没有到达那里。

for lista in P:
        for i in lista: 

我不知道如何继续代码...有人可以帮助我吗?提前致谢!

标签: pythonpython-3.7

解决方案


这应该工作

from collections import defaultdict

input = [[('Lista-A', 1), ('Lista-X', 1), ('Lista-Z', 4)], [('Lista-A', 2), ('Lista-X', 0), ('Lista-Z', 1)], [('Lista-A', 5), ('Lista-X', 1), ('Lista-Z', 0)], [('Lista-A', 0), ('Lista-X', 1), ('Lista-Z', 4)]]

d = defaultdict(int)
for i in input:
    for j in i:
        d[j[0]] += j[1]

res = list(d.items())

推荐阅读