-1

我正在编写一个程序,该程序获取已播放的足球比赛列表,并从中输出联赛中的排名。我完成了大部分的解析工作,但我正在努力解决这个问题。

排序标准如下: A) 得分最高的团队。B) 比赛次数最少的球队。C) 获胜次数最多的球队。D) 净胜球最高的球队。E) 进球最多的球队。F) 按字母顺序。

我的代码给了我一个从所有游戏输入创建的字典,格式如下:

{'Cagliari': [3, 1, 0, 0, 2, 1, 1, 1], 'Torino': [0, 0, 0, 1, 1, 2, -1, 1], 
'Lazio': [3, 1, 0, 0, 4, 2, 2, 1], 'AC Milan': [1, 0, 1, 0, 1, 1, 0, 1], 
'Napoli': [0, 0, 0, 1, 2, 4, -2, 1], 'Inter Milan': [1, 0, 1, 0, 1, 1, 0, 1]}

其中每个键:值对处于特定模式:

'Team' : [points, wins, ties, losses, goals for, goals against, goal differential, 
games played]

我的问题是,如何根据这些多重标准进行排序?

4

1 回答 1

1
>>> teams = {'Cagliari': [3, 1, 0, 0, 2, 1, 1, 1], 'Torino': [0, 0, 0, 1, 1, 2, -1, 1], 
... 'Lazio': [3, 1, 0, 0, 4, 2, 2, 1], 'AC Milan': [1, 0, 1, 0, 1, 1, 0, 1], 
... 'Napoli': [0, 0, 0, 1, 2, 4, -2, 1], 'Inter Milan': [1, 0, 1, 0, 1, 1, 0, 1]}
>>> sorted(teams, key=lambda t : (teams[t][0], teams[t][-1]*-1, teams[t][1], teams[t][-2], teams[t][4], t))
['Napoli', 'Torino', 'AC Milan', 'Inter Milan', 'Cagliari', 'Lazio']
于 2013-11-08T06:46:06.220 回答