python开发笔记-字典按值排序取前n个key值
场景举例:
假如我们有某个班级的语文成绩数据,格式为字典,其中字典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值的更多相关文章
- Python开发笔记:网络数据抓取
网络数据获取(爬取)分为两部分: 1.抓取(抓取网页) · urlib内建模块,特别是urlib.request · Requests第三方库(中小型网络爬虫的开发) · Scrapy框架(大型网络爬 ...
- python开发笔记-通过xml快捷获取数据
今天在做下python开发笔记之如何通过xml快捷获取数据,下面以调取nltk语料库为例: import nltk nltk.download() showing info https://raw.g ...
- python开发笔记-python调用webservice接口
环境描述: 操作系统版本: root@9deba54adab7:/# uname -a Linux 9deba54adab7 --generic #-Ubuntu SMP Thu Dec :: UTC ...
- C#开发笔记之07-如何实现交换2个变量的值而不引入中间变量?
C#开发笔记概述 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/963 访问. 这里给出常见的7种方法,仅供大家参考,部 ...
- python开发笔记-str转字典
后台接收到post请求数据格式为json格式的字符串,不能直接用字典的get方法 909090909090909090909090909090909 Internal Server Error: /g ...
- python开发笔记-变长字典Series的使用
Series的基本特征: 1.类似一维数组的对象 2.由数据和索引组成 import pandas as pd >>> aSer=pd.Series([1,2.0,'a']) > ...
- Python学习笔记——字典
1.创建字典和给字典赋值,可以使用工厂方法dict()来创建字典,也可以使用fromkeys()来创建一个元素具有相同值的字典 >>> dict = {'name':'XiaoMin ...
- Python学习笔记-字典
字典是python中唯一内建的映射类型. 创建字典phonebook = {'Alice':'2341','Beth':'9102'} 可以使用dict通过其他映射或者键值对的序列建立字典.关键值参数 ...
- Python复习笔记-字典和文件操作
抽时间回顾2年前自己做过的python工具,突然感觉不像自己写的,看来好久没用过python的字典和文件操作了,查询资料和网页,整理如下: 一.字典 键值对的集合(map) 字典是以大括号“{}”包围 ...
随机推荐
- Upgrade Windows Server 2016 to Windows Server 2019
Pre-Upgrade Upgrade path: Windows Server 2016 can be upgraded to Windows 2019 in a single upgrade pr ...
- Yii2模型介绍
通过来说,我们可以把yii2中的Mdoel分为两种: 1)数据模型: 2)表单模型: 数据模型 数据模型关联数据表,用来实现对数据的操作; 一般数据模型放在common/models下: 表单模型 表 ...
- python 列表的属性和方法整理
list属性和方法 补一个超实用的函数 envmerate(列表名, [start=0]) 作用: 将一个可遍历的数据对象(如列表.元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用 ...
- NODE简易综合应用服务器搭建
node搭建简易服务器 querystring和url模板学习地址 querystring&url 1. 目录结构 2. 代码结构 const http = require('http'); ...
- Javascript技能
Javascript技能 说一说我对 Javascript 这门语言的一些总结(适合前端和后端研发) 基本认识 一些心得 思维脑图的链接(icloud 分享): https://www.icloud. ...
- iptables 通用语句
iptables -t filter -nvL --line-number | grep destination -t : 指定表 {fillter|nat|mangle|raw} -v : 显示详 ...
- Alpha冲刺笔记十:第十天
课程名称:软件工程1916|W(福州大学) 作业要求:项目Alpha冲刺(十天冲刺) 团队名称:葫芦娃队 作业目标:在十天冲刺里对每天的任务进行总结. 随笔汇总:https://www.cnblogs ...
- 对象key值排序,以key值(数字)大小顺序遍历属性,helper._sort()
var helper = { _sort:function(data){ //{“20141216”:{},“20141217”:{}}按大小排序, var arr1 = [],arr2=[]; fo ...
- 2019牛客国庆集训派对day1 K题 双向链表练习题 splay区间翻转
题目链接: 解法: 先建n颗平衡树,合并的时候将a中最右的结点翻转到根节点,b中最左的结点翻转到根节点,对合并后的根节点进行标记. #include <bits/stdc++.h> usi ...
- 15-Flutter移动电商实战-商品推荐区域制作
1.推荐商品类的编写 这个类接收一个List参数,就是推荐商品的列表,这个列表是可以左右滚动的. /*商品推荐*/class Recommend extends StatelessWidget { ...