如何让字典保持有序

实际案例:
某编程竞赛系统,对参赛选手编程结题进行计时,选手完成项目后,
把该选手解题用时记录到字典中,以便赛后查询成绩。
答题用时越短,成绩越优。

{'lilei':(2,43),'hanmeimei':(3,54),'jim':(1,38),.....}

比赛结束后,需按排名顺序依次打印选手成绩,如何实现?

解决方案:
使用collections.OrderedDict
以OrderedDict代替内置字典Dict,依次将选手成绩存入OrderedDict

from time import time
from random import randint
from collections import OrderedDict
players = list('abcdefgh') # 随机构造8个选手

start = time() # 比赛开始时间
res = OrderedDict()

for i in range(8):
    input(">>>") # 每次输入代表一个选手完成了比赛
    player = players.pop(randint(0,7-i))
    end = time()
    print(i+1,player,end-start)
    res[player] = (i+1,end-start) # 记录该选手的成绩和排名
    
print(res)

for k,v in res.items():
    print(k,v)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 实际案例 某编程竞赛系统,对参赛选手编程解题进行计时,选手完成题目后,把该选手解题用时记录到字典中,以便赛后按选手...
    SmallRookie阅读 557评论 0赞 1
  • 一般列表实现方法如下,{人名:(名次,用时)},但结果无顺序 解决方法 使用OrderedDict 模拟竞赛系统 ...
    lupinwu阅读 329评论 0赞 0
  • 一. 如何根据字典中值的大小,对字典中的项进行排序 实际案例: 某班英语成绩以字典形式存储为:{"LiLei": ...
    我是一条池中鱼阅读 459评论 0赞 1
  • 案例 某编程竞赛系统,对参赛选手编程解题进行计时,选手完成题目后,把该选手解题时用时记录到字典中,以便赛后按选手名...
    OldSix1987阅读 2,480评论 0赞 0
  • 1.该App解决什么问题,有什么创新的做法:用截图和文字说明。 解决的问题:买家的购物需求。 创新的做法:1.有新...
    1812e71eb6e4阅读 2,164评论 0赞 0

友情链接更多精彩内容