gpt4 book ai didi

python - 如何在python中对字典索引进行排序

转载 作者:太空宇宙 更新时间:2023-11-04 09:39:29 26 4
gpt4 key购买 nike

我有一种方法可以从 1 开始递增的索引中对团队值进行排序。它看起来像这样:

def create_ranking():
sort_one = sorted(team_scores.items(), key=itemgetter(0))
teams_sorted = sorted(sort_one, key=itemgetter(1), reverse=True)
for idx, (team, score) in enumerate(teams_sorted, 1):
suffix = 'pt' if score ==1 else 'pts'
print(f'{idx}. {team + ","} {score} {suffix}')

它目前给我这个输出:

1. Tarantulas, 6 pts
2. Lions, 5 pts
3. FC Awesome, 1 pt
4. Snakes, 1 pt
5. Grouches, 0 pts

目前是根据分值对字典进行排序,如果分值相同,则按字母顺序排序。

如果我需要显示在相同索引值上具有相同分数的团队,我该如何对字典进行排序。例如:

1. Tarantulas, 6 pts
2. Lions, 5 pts
*3. FC Awesome, 1 pt
3. Snakes, 1 pt*
4. Grouches, 0 pts

最佳答案

使用 itertools.groupby 将得分相同的团队聚集在一起,然后遍历每个组:

from operator import itemgetter
import itertools

sort_one = [
('Tarantulas', 6),
('Lions', 5),
('FC Awesome', 1),
('Snakes', 1),
('Grouches', 0),
]
teams_sorted = sorted(sort_one, key=itemgetter(1), reverse=True)
for idx, (score, group) in enumerate(itertools.groupby(teams_sorted, itemgetter(1)), 1):
for team, ignore_score in group:
suffix = 'pt' if score ==1 else 'pts'
print('{idx}. {team}, {score} {suffix}'.format(idx=idx, team=team, score=score, suffix=suffix))

关于python - 如何在python中对字典索引进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52207104/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com