2

在 Python 2.7 中工作。

我有一个以团队名称为键的字典,值包含在列表中。第一个值是球队得分的跑数,第二个是允许跑数:

NL = {'Phillies': [662, 476], 'Braves': [610, 550], 'Mets': [656, 687]}

我有一个函数可以遍历每个键,并提供整个字典的得分和允许的总运行次数。我还希望能够从总数中减去每支球队,并创建一个联赛减去球队的价值。

我首先尝试了一些类似的东西:

def Tlog5(league, league_code):
    total_runs_scored = 0
    total_runs_allowed = 0
    for team, scores in league.iteritems():
        total_runs_scored += float(scores[0])
        total_runs_allowed += float(scores[1])
        team_removed_runs = total_runs_scored - scores[0]

不幸的是,这似乎只是从已经迭代的值中减去,而不是从完整的总数中减去。因此,对于字典中的第一支球队,team_removed_runs 为 0,对于第二支球队,它是前两支球队的总跑数减去第二支球队的总分(只留下第一支球队的总分。

我试图将 team_removed_runs = total_runs_scored - score[0] 移出 for 循环,但后来我只得到了字典中最后一个团队的值。

有没有办法可以返回字典中所有团队的 team_removed 运行?

谢谢你的帮助!

4

1 回答 1

6

如果您想要team_removed_runs字典中的每个团队,您需要返回字典并计算总运行次数减去每个团队的运行次数。就像是

team_removed_runs = {}
for team, scores in league.iteritems():
    team_removed_runs[team] = [total_runs_scored - scores[0],
                               total_runs_allowed - scores[1]]

这将使用整个联赛的total_runs_scored和的最终值total_runs_allowed,然后从该总数中减去每个球队的值,将结果存储在字典中team_removed_runs。所以如果你想要联盟总价值减去费城人队,你可以在

team_removed_runs['Phillies']
于 2011-09-18T05:47:03.593 回答