<p>使用<a href="http://docs.python.org/2/library/collections.html#collections.defaultdict" rel="nofollow">collections.defaultdict</a>:</p>
<p>我不知道每个字段的含义,我对每个字段求和。根据需要调整。在</p>
<pre><code>from collections import defaultdict
import csv
class PlayerStat(object):
def __init__(self, yds=0, car=0, td=0, fum=0, ypc=0, count=0):
self.yds = float(yds)
self.car = float(car)
self.td = float(td)
self.fum = float(fum)
self.ypc = float(ypc)
self.count = count
def __iadd__(self, other):
self.yds += other.yds
self.car += other.car
self.td += other.td
self.fum += other.fum
self.ypc += other.ypc
self.count += other.count
return self
filenames = 'NewRush4.csv', 'NewRush5.csv', 'NewRush6.csv',
stats = defaultdict(PlayerStat)
for filename in filenames:
with open(filename) as f:
reader = csv.DictReader(f, delimiter=',')
for row in reader:
stat = PlayerStat(row['YDS'], row['CAR'], row['TD'], row['FUM'], row['YPC'], count=1)
stats[row['Player']] += stat
for player in sorted(stats, key=lambda player: stats[player].yds):
stat = stats[player]
if stat.count == 1:
continue
print '{0:<20}{1.car:>10}{1.yds:>10}{1.td:>10}{1.fum:>10}{1.ypc:>10}'.format(player, stat)
</code></pre>