用Python对键和值进行分组



我有一些数据。数字键和数值:

[
(468793398, 672),
(468793398, 2464),
(521683990, 131152)
]

我需要像这样分组键和值:

[
(468793398, 3136), 
(521683990, 131152)
]

键必须是唯一的,具有相同键的值应该是彼此递增

请帮我写一个python代码来解决这个问题。它看起来很简单,但是我不知道。

另一个解决方案:

lst = [(468793398, 672), (468793398, 2464), (521683990, 131152)]
out = {}
for k, v in lst:
out[k] = out.get(k, 0) + v
print(list(out.items()))

打印:

[(468793398, 3136), (521683990, 131152)]

您可以使用itertools.groupby(和operator.itemgetter):

from itertools import groupby
from operator import itemgetter
lst = [
(468793398, 672),
(468793398, 2464),
(521683990, 131152)
]
result = [
(key, sum(map(itemgetter(1), group))) 
for key, group in groupby(lst, key=itemgetter(0))
]

最新更新