import random
def buggy(lst):
data = dict.fromkeys(lst, [])
for i in range(3):
team_stats = dict.fromkeys(lst, 0)
for j in range(3):
ind_stats = {field: random.randint(1,5) for field in lst}
for field, val in ind_stats.iteritems():
team_stats[field] += val
for f, v in team_stats.iteritems():
data[f].append(v)
return data
Say I want to return aggregated team stats for a team of three individuals for 3 games.
d = buggy(['sack', 'first_down'])
d should be something like { 'sack': [12, 3, 7], 'first_down': [5, 8 ,5] } So in game 1 the team had 5 first downs.
Instead I keep getting something like { 'sack' : [12, 5, 3, 8, 7, 5], 'first_down' : [12, 5, 3, 8, 7, 5]}
I've tried debugging and every form of:
for f, v in team_stats.iteritems():
data[f].append(v)
I could think of, but everytime every field in data gets appended instead of the specific field data[f].