我有一些資料。數字鍵和數值:
[
(468793398, 672),
(468793398, 2464),
(521683990, 131152)
]
我需要像這樣對鍵和值進行分組:
[
(468793398, 3136),
(521683990, 131152)
]
鍵應該是唯一的,并且具有相同鍵的值應該彼此遞增。
請幫我寫一個python代碼來解決這個問題。它看起來很簡單,但我不知道。
uj5u.com熱心網友回復:
另一種解決方案:
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)]
uj5u.com熱心網友回復:
您可以為此使用itertools.groupby(and 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))
]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/475042.html
標籤:python-3.x 排序
