我有一些数据。数字键和数值:
[
(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))
]