繁体   English   中英

如何对元组对列表求和?

[英]How do I sum a list of tuple pairs?

我有一个对的列表,它每秒都在不断更新新值。 如果它们等于每个元组中的第一个值,我需要对每个元组中的第二个值求和。 我试过使用字典,但由于键是唯一的,它会覆盖以前的更新。

[(3.05, 0.0), (3.1, 863.62), (3.05, 156.74)]
[(3.05, 0.0), (3.1, 863.62), (3.05, 156.74), (3.1, 293.97)]
[(3.05, 0.0), (3.1, 863.62), (3.05, 156.74), (3.1, 293.97), (3.05, 16.32)]
[(3.05, 0.0), (3.1, 863.62), (3.05, 156.74), (3.1, 293.97), (3.05, 16.32), (3.05, 210.72)]

期望的输出:

[(3.05, 383.06), (3.1, 1157.59)]

我不得不重新创建这个问题,在原始帖子中,数字每秒从 excel 流入。 当我使用字典时,新的更新键会替换旧键并根据唯一键记录新值。 因此很难将所有值与它们的键相加。 这只是一个例子,更新将是 excel 提供的任何内容。

import collections ,random, string

alpha = list(string.ascii_letters)

lst_a = []
lst_b = []

for i in range(100):
    lst_a.append(alpha[random.choice(range(25))])
    lst_b.append(random.choice(range(1000)))


combine = dict(zip(lst_a,lst_b))
print(combine.get('a'))

update = list(zip(['a'],[2000]))
combine.update(update)

print(combine.get('a'))

例如,使用键“a”,这些值不是彼此的总和。

你可以使用defaultdict

d = defaultdict(float)
for a, b in list_of_pairs:
    d[a] += b
desired_output = list(d.items())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM