按多个标准排序项目

2024-05-23 15:08:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一个程序,需要一个足球比赛的列表,并从中输出在联赛中的排名。我已经完成了大部分的解析工作,但正在努力进行排序。你知道吗

分类标准如下: 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]

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


Tags: 代码程序游戏列表标准排序顺序字母
1条回答
网友
1楼 · 发布于 2024-05-23 15:08:47
>>> 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']

相关问题 更多 >