案例:

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

{‘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))

python_如何让字典保持有序?的更多相关文章

  1. 5、如何快速找到多个字典中的公共键(key) 6 如何让字典保持有序 7 如何实现用户的历史记录功能(最多n条)

    5.如何快速找到多个字典中的公共键(key) from random import randint,sample #随机取数 # a = sample("ABCDEF",randi ...

  2. Python如何让字典保持有序

    问题: Python如何让字典保持有序 ? 解决方案: 使用collections.OrderedDict代替Dict. 验证程序: from collections import OrderedDi ...

  3. Python中将字典转换为有序列表、无序列表的方法

    说明:列表不可以转换为字典 1.转换后的列表为无序列表 a = {'a' : 1, 'b': 2, 'c' : 3} #字典中的key转换为列表 key_value = list(a.keys()) ...

  4. Python_列表、字典、字符串、集合操作

    一.list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素.对于list的操作,我们要学会增删改查. 查 我们可以直接索引查找,也可以通过切片 ...

  5. Python_元组、字典内建方法详解

    目录 目录 前言 软件环境 元组Tuple count 查询一个元素在Tuple中的数量 index 查询元素在Tuple中的索引号 元组的遍历 字典Dictionary 创建一个字典对象 简单的创建 ...

  6. 【python cookbook】【数据结构与算法】7.让字典保持有序

    问题:创建一个字典,同时对字典做迭代或序列化操作时,也能控制其中元素的顺序: 解决方案:可以使用collections模块中的OrderedDict类来控制字典中元素的顺序.当对字典做迭代时,他会严格 ...

  7. python_如何对字典进行排序?

    案例: 某班英语成绩以字典的形式存储为: {'lili':78, 'jin':50, 'liming': 30, ......} 依据成绩高低,进行学生成绩排名 如何对字典排序? 方法1: #!/us ...

  8. Python_ collections_defaultdict默认字典

    defaultdict(): 默认类型为字典,继承了字典的方法 import collections dic = collections.defaultdict() dic['k1'] = 'hell ...

  9. Python基础——字典和有序字典

    字典 说明: 在 Python 中, 字典 是一系列 键 — 值对 .每个键都与一个值相关联,你可以使用键来访问与之相关联的值.与键相关联的值可以是数字.字符串.列表乃至字典.事实上,可将任何 Pyt ...

随机推荐

  1. 某xss挑战赛闯关笔记

    0x0 前言 在sec-news发现先知上师傅monika发了一个xss挑战赛的闯关wp([巨人肩膀上的矮子]XSS挑战之旅---游戏通关攻略(更新至18关)https://xianzhi.aliyu ...

  2. Watch time

    Stopwatch watch = new Stopwatch(); watch.Start(); ; i <= ; i++) { ; j <= ; j++) { ; k <= ; ...

  3. H5 调用手机摄像机、相册功能

    <input type="file" accept="image/*" capture="camera"> <input ...

  4. 五分钟学习React(一): 什么是React

    在前端的世界里,我们要处理的文件不是太多,而是太少.每天开发项目将html.css.js.图片.字体文件都像大杂烩一般加载都网页上.当应用变得越来越臃肿的时候,会发现js用了那么多全局变量,css的继 ...

  5. AssertionError while merging cells with xlwt (Python)

    产生这一错误的原因是,行列数字的赋值有问题,三行数字大于下行数字,左列数字大于右列数字. sheet.write_merge(top_row, bottom_row, left_column, rig ...

  6. instr函数的"重载"

    .带两个参数的 --模糊查询,comp表的Mobel和show_name字段中含有'张' INSTR(COMP.MOBILE .带三个参数的 ) from dual; 结果: 第三个参数:从字符串&q ...

  7. 常见查找算法之php, js,python版

    常用算法 >>>1. 顺序查找, 也叫线性查找, 它从第一个记录开始, 挨个进行对比, 是最基本的查找技术 javaScript 版顺序查找算法: // 顺序查找(线性查找) 只做找 ...

  8. OllyDBG 破解入门教程

    一.OllyDBG 的安装与配置OllyDBG  版的发布版本是个 ZIP 压缩包,只要解压到一个目录下,运行 OllyDBG.exe 就可以了.汉化版的发布版本是个 RAR 压缩包,同样只需解压到一 ...

  9. [bzoj4411] [Usaco2016 Feb]Load balancing

    先离散化一下(也可以不用 枚举横坐标,用线段树维护两边纵坐标上的节点数. 每次在线段树上二分...(感觉似乎树状数组也行? #include<cstdio> #include<ios ...

  10. [bzoj4410] [Usaco2016 Feb]Fence in

    根据ccz181078大爷的题解可得(QAQ,每次肯定是断掉连续一行||一列的栅栏... 贪心地想,一个格子与外面联通,显然是先把短的边界断掉(就像mst那样 但是比较蛋疼的是,因为我们每次断的时候, ...