次の(スペースで区切られた)入力があります:
2012-10-05 PETER 6
2012-10-05 PETER 4
2012-10-06 PETER 60
2012-10-06 TOM 10
2012-10-08 SOMNATH 80
そして、次のパイプ区切り出力を実現したいと思います:(列は[DATE AND NAME、NUM ENTRIES、SUM OF LAST COL])
2012-10-05 PETER|2|10
2012-10-06 PETER|1|60
2012-10-06 TOM|1|10
2012-10-08 SOMNATH|1|80
これはこれまでの私のコードです:
s = open("output.txt","r")
fn=s.readlines()
d = {}
for line in fn:
parts = line.split()
if parts[0] in d:
d[parts[0]][1] += int(parts[2])
d[parts[0]][2] += 1
else:
d[parts[0]] = [parts[1], int(parts[2]), 1]
for date in sorted(d):
print "%s %s|%d|%d" % (date, d[date][0], d[date][2], d[date][1])
私は次のように出力を取得しています:
2012-10-06 PETER|2|70
それ以外の
2012-10-06 PETER|1|60
TOM
リストに表示されていません。
コードを修正するには何をする必要がありますか?