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

python_如何让字典保持有序?

2017-07-25 23:18 375 查看
案例:

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

{‘lili’:(1,43),’yuyu’:(2,48),’tiutiu’:(3,59),.....}

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

  越先进入字典的人,成绩越优秀

如何做到这点?

通过 OrderedDict 来实现

#!/usr/bin/python3

from time import time
from random import randint
from collections import OrderedDict

def order_dict(player):
# 生成 OrderedDict 字典对象
median = OrderedDict()

print('选手名单:', player)
end_num = len(player)
# 记录开始时间
start = time()

# 每按一下,往字典中插入数据,有序数据
for i in range(1, end_num + 1):
input('按任意建继续>>>>')
p = player.pop(randint(0, len(player) - 1))

# 记录结束时间
end = time()

# 打印插入的数据
print(i, p, end-start)

# 往有序字典中插入数据
median[p] = (i, end-start)
return median

if __name__ == '__main__':
# 生成ABCDEFCH 8名选手
player = list('ABCDEFCH')

# 获取有序的字典
result = order_dict(player)
print(result, type(result))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: