0
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].

Neck Beard
  • 383
  • 5
  • 8

0 Answers0