您的位置:首页 > 编程语言 > Python开发

python高级(如何让字典保持有序)

2019-02-27 16:40 603 查看

案例:

某编程竞赛系统,对参赛选手编程解题进行计时,选手完成题目后,把该选手解题用时记录到字典中,以便赛后按选手名查询成绩。(答题用时越短,成绩越优)

{'LiLei':(2,43),'HanMeimei':(5,52),'jim':(1,39)...}

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

from time import time
from random import randint
from collections import OrderedDict    #导入标准库中OrderedDict模块,模块功能是按照程序先加入的键值对进行排序

d = OrderedDict()   
players = list('abcdefg')   #建立选手成员列表
start = time()    #记录比赛开始时间
for i in range(7):     #循环比赛选手的人数
    input('完成考试')    
    p = players.pop(randint(0, 6-i))    #当选手点击考试完成后从选手成员列表随机删除最后一个该答题完毕的成员
    end = time()   #记录考试完成时间
    d[p] = (i+1, end - start)    #选手的姓名作为键,元组记录名次和用时时间作为值添加进字典中
    print()
    print('-'*20)
for k in d:
    print(k, d[k])    #选手姓名:(名次,用时)格式化输出

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: