2017-04-18 7 views
0

私はゲームの結果を表すテーブルを持っています。テーブルから要素を取得して合計を計算する

GameTab = [['TRE','ARD','1','1'],['PRK','GEA','2','3'],['ARD','PRK','1','0'],['TRE','GEA','2','1']] 

私はここにテキスト形式だ表形式にテキストファイルからの結果を追加:簡単にそれを置くためには、例えば、TREは、1を獲得し、ARDは1 PRKは2とGEAを獲得した得点ように解釈していますスコア3

TRE:ARD:1:1 
PRK:GEA:2:3 
ARD:PRK:1:0 
TRE:GEA:2:1 

プレーヤーの結果を取得する代わりに、代わりに相手の結果を取得する必要があります。私はプレーヤーの結果を得る方法で自分のコードを実行しましたが、相手の結果を得る方法は考えられませんでした。 GEAとTRE:GEA:

The opponent of GEA scored a total of: 4 

マイコード:

gameTab =[['TRE','ARD','1','1'],['PRK','GEA','2','3'],['ARD','PRK','1','0'], 
      ['TRE','GEA','2','1']] 

dictionary = {} 
for i in gameTab: 
    for c in range(len(i[:2])): 
     if i[:2][c] not in dictionary.keys(): 
       dictionary[i[:2][c]] = int(i[2:][c]) 
     else: 
      dictionary[i[:2][c]] += int(i[2:][c]) 
print(dictionary) 
+0

パンダのデータフレームを使ってみましたか? (http://pandas.pydata.org/pandas-docs/stable/dsintro.html#)このようなテーブルのフォーマットは非常に簡単です。 (groupby http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.groupby.htmlを参照) – Chris

答えて

0

チームに対して相手の結果を得るために、例えば、PRKの一致で

コードの下に条件を満たし:

gameTab =[['TRE','ARD','1','1'],['PRK','GEA','2','3'],['ARD','PRK','1','0'],['TRE','GEA','2','1']] 

dictionary = {} 
for i in gameTab: 
    if i[0] in dictionary: 
    dictionary[i[0]] += int(i[3]) 
    else: 
    dictionary[i[0]] = int(i[2]) 

    if i[1] in dictionary: 
    dictionary[i[1]] += int(i[2]) 
    else: 
    dictionary[i[1]] = int(i[2]) 

print(dictionary) 

それがプリントアウト:{'ARD': 1, 'GEA': 4, 'TRE': 2, 'PRK': 3}

基本的にリストのリストをトラバースし、すべてのチームチェックで辞書に存在するかどうかを確認してから、その値を相手の値として増やします。そして、最終的には、反対派のチームに対してすべての得点を獲得するだろう。

0
gametab = [['TRE','ARD','1','1'],['PRK','GEA','2','3'],['ARD','PRK','1','0'],['TRE','GEA','2','1']] 

dicta = {} 
for i in range(len(gametab)): 
    for j in range(2): 
     if gametab[i][j] in dicta: 
      dicta[gametab[i][j]] += int(gametab[i][j+2]) 
     else: 
      dicta[gametab[i][j]] = int(gametab[i][j+2]) 

print dicta 
関連する問題