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
假设我想为三场比赛的三人团队返回总计团队统计数据。
d = buggy(['sack', 'first_down'])
d应该像{'sack':[12,3,7],'first_down':[5,8,5]} 所以在第一场比赛中,球队有5次首发。
相反,我不断得到类似{'sack':[12,5,3,8,7,5],'first_down':[12,5,3,8,7,5]}
我尝试过调试和各种形式:
for f, v in team_stats.iteritems():
data[f].append(v)
我能想到,但每次数据中的每个字段都会被追加而不是特定的字段数据[f]。