2017-05-16 16 views
-3

タプルのpythonリストのインデックス[0]と同じ値のインデックス[0]の値を合計する方法はありますか?インデックス0のタプルのpythonリストのインデックス[0]と同じ値のインデックス[2]で値を合計するには

rows = [(1,'abc', 101),(2, 'rt',8765),(5, 'dfdf', 321),(1, 'abc', 477),(1, 'abc', 233),(3, 'rree', 323), (5, 'dfdf', 4531), (1, 'abc', 99)] 
ids = 1,2,5,3 

1のindex[2] (101, 477, 99)と5の(4531, 321)で値の合計にする方法、であるが同様のIDS

+0

質問している内容が不明確で、入力と出力のテストケースの例とコーディングの試行をお試しください –

+0

まだ不明です。希望の出力を提供してください –

答えて

1

を持っている私はあなたがインデックス0でIDに応じてインデックス2の値を集計するとします。あなたは、あなたのデータを合計するために辞書を使用することができます。今すぐ

rows = [ 
    (1,'abc', 101),(2, 'rt',8765),(5, 'dfdf', 321),(1, 'abc', 477), 
    (1, 'abc', 233),(3, 'rree', 323), (5, 'dfdf', 4531), (1, 'abc', 99)] 
aggregated = {} 
for row in rows: 
    aggregated[row[0]] = aggregated.get(row[0], 0) + row[2] 

aggregated{1: 910, 2: 8765, 3: 323, 5: 4852}です。

か - あなたはこの迷惑なgetメソッドを使用しない場合 - あなたはdefaultdictの電源を使用することができます。

from collections import defaultdict 
aggregated = defaultdict(int) 
for row in rows: 
    aggregated[row[0]] += row[2] 

aggregatedは​​です。

+0

、解決済み、ありがとう –

関連する問題