场景举例:

  假如我们有某个班级的语文成绩数据,格式为字典,其中字典key为学生姓名,value为学生成绩;

那么,如何获得单科成绩排名前3的学生姓名?

代码如下:--数据样例,方便测试

def dic_order_value_and_get_key(dicts, count):
# by hellojesson
# 字典根据value排序,并且获取value排名前几的key
# 样例: dicts = {'王二狗':66,'李大东':55,'刘小明':99, '胡八一':88}
final_result = []
# 先对字典排序
sorted_dic = sorted([(k, v) for k, v in dicts.items()], reverse=True)
tmp_set = set() # 定义集合 会去重元素 --此处存在一个问题,成绩相同的会忽略,有待改进
for item in sorted_dic:
tmp_set.add(item[1])
for list_item in sorted(tmp_set, reverse=True)[:count]:
for dic_item in sorted_dic:
if dic_item[1] == list_item:
final_result.append(dic_item[0])
return final_result

上边代码是一个独立的方法,调用的时候,将符合格式的字典数据传入,以及传入需要获取的前几位值,

例:取前3名 dic_order_value_and_get_key(dicts, 3)

python开发笔记-字典按值排序取前n个key值的更多相关文章

  1. Python开发笔记:网络数据抓取

    网络数据获取(爬取)分为两部分: 1.抓取(抓取网页) · urlib内建模块,特别是urlib.request · Requests第三方库(中小型网络爬虫的开发) · Scrapy框架(大型网络爬 ...

  2. python开发笔记-通过xml快捷获取数据

    今天在做下python开发笔记之如何通过xml快捷获取数据,下面以调取nltk语料库为例: import nltk nltk.download() showing info https://raw.g ...

  3. python开发笔记-python调用webservice接口

    环境描述: 操作系统版本: root@9deba54adab7:/# uname -a Linux 9deba54adab7 --generic #-Ubuntu SMP Thu Dec :: UTC ...

  4. C#开发笔记之07-如何实现交换2个变量的值而不引入中间变量?

    C#开发笔记概述 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/963 访问. 这里给出常见的7种方法,仅供大家参考,部 ...

  5. python开发笔记-str转字典

    后台接收到post请求数据格式为json格式的字符串,不能直接用字典的get方法 909090909090909090909090909090909 Internal Server Error: /g ...

  6. python开发笔记-变长字典Series的使用

    Series的基本特征: 1.类似一维数组的对象 2.由数据和索引组成 import pandas as pd >>> aSer=pd.Series([1,2.0,'a']) > ...

  7. Python学习笔记——字典

    1.创建字典和给字典赋值,可以使用工厂方法dict()来创建字典,也可以使用fromkeys()来创建一个元素具有相同值的字典 >>> dict = {'name':'XiaoMin ...

  8. Python学习笔记-字典

    字典是python中唯一内建的映射类型. 创建字典phonebook = {'Alice':'2341','Beth':'9102'} 可以使用dict通过其他映射或者键值对的序列建立字典.关键值参数 ...

  9. Python复习笔记-字典和文件操作

    抽时间回顾2年前自己做过的python工具,突然感觉不像自己写的,看来好久没用过python的字典和文件操作了,查询资料和网页,整理如下: 一.字典 键值对的集合(map) 字典是以大括号“{}”包围 ...

随机推荐

  1. <choose><when><if>

    --说明:choose类似于switch,其中的when如果不符合则进入otherwise(类似于default),可以结合if标签使用. -- <select> -- SELECT * ...

  2. Pods

    Pods Pod概念 Pod是kubernetes集群应用中的创建和部署的最小.最简单的kubernetes对象模型单元的基本执行单元.Pod表示在集群中运行的进程. Pod 封装了应用程序的容器(一 ...

  3. Eclipse安装JDK11方式

    安装JDK11JDK下载网址:https://www.oracle.com/technetwork/java/javase/downloads Java SE Development Kit 11ht ...

  4. Ceph添加、删除osd及故障硬盘更换

    添加或删除osd均在ceph部署节点的cent用户下的ceph目录进行. 1. 添加osd 当前ceph集群中有如下osd,现在准备新添加osd: (1)选择一个osd节点,添加好新的硬盘: (2)显 ...

  5. webpack脚手架增加版本号

    1.product模式下,新增版本号: 1)common.js文件中,输出的文件路径要跟着变化 output: { filename: 'js/[name].js', path: path.resol ...

  6. CodeForces - 83D:Numbers (数学&递归 - min25筛 )

    pro:给定三个整数L,R,P求[L,R]区间的整数有多少个是以P为最小因子的.L,R,P<2e9; sol: 一: 比较快的做法是,用函数的思想递归. 用solve(N,P)表示求1到N有多少 ...

  7. Java——CaptchaUtil生成二维码乱码

    前言 这个问题就是因为Linux上没有字体,你可以有两种方法,一个在生成的时候设置字体,一个就是安装字体. 默认的字体为Courier 乱码情况 步骤 安装字体工具 yum install -y fo ...

  8. java中异步调用注意

    Future接口是Java标准API的一部分,在java.util.concurrent包中.Future接口是Java线程Future模式的实现,可以来进行异步计算. 有了Future就可以进行三段 ...

  9. python写入excel(方式二待完善)

    import xlsxwriter #创建一个工作簿并添加一张工作表,当然工作表是可以命名的# workbook = xlsxwriter.Workbook('Expenses01.xlsx')# w ...

  10. 获取国定字符的内容split

    a="Time:20190822_111655_554 Start Cloud new case, Num=1, Input=/data/voice/20190725_035326_2_vo ...