Python实现对字典分别按键(key)和值(value)进行排序的方法分析


Posted in Python onDecember 19, 2018

本文实例讲述了Python实现对字典分别按键(key)和值(value)进行排序的方法。分享给大家供大家参考,具体如下:

方法一:

#使用sorted函数进行排序
'''
sorted(iterable,key,reverse),sorted一共有iterable,key,reverse这三个参数;
其中iterable表示可以迭代的对象,例如可以是dict.items()、dict.keys()等
key是一个函数,用来选取参与比较的元素,reverse则是用来指定排序是倒序还是顺序,reverse=true则是倒序,
reverse=false时则是顺序,默认时reverse=false。
'''
#初始化字典
dict_data={6:9,10:5,3:11,8:2,7:6}

1、对字典按键(key)进行排序

#对字典按键(key)进行排序(默认由小到大)
test_data_0=sorted(dict_data.keys())
#输出结果
print(test_data_0) #[3, 6, 7, 8, 10]
test_data_1=sorted(dict_data.items(),key=lambda x:x[0])
#输出结果
print(test_data_1) #[(3, 11), (6, 9), (7, 6), (8, 2), (10, 5)]

2、对字典按值(value)进行排序

#对字典按值(value)进行排序(默认由小到大)
test_data_2=sorted(dict_data.items(),key=lambda x:x[1])
#输出结果
print(test_data_2) #[('8', 2), ('10', 5), ('7', 6), ('6', 9), ('3', 11)]
test_data_3=sorted(dict_data.items(),key=lambda x:x[1],reverse=True)
#输出结果
print(test_data_3) #[('3', 11), ('6', 9), ('7', 6), ('10', 5), ('8', 2)]

方法二:

import operator
#初始化字典
dict_data={6:9,10:5,3:11,8:2,7:6}
#按键(key)进行排序
test_data_4=sorted(dict_data.items(),key=operator.itemgetter(0))
test_data_5=sorted(dict_data.items(),key=operator.itemgetter(0),reverse=True)
print(test_data_4) #[(3, 11), (6, 9), (7, 6), (8, 2), (10, 5)]
print(test_data_5) #[(10, 5), (8, 2), (7, 6), (6, 9), (3, 11)]
#按值(value)进行排序
test_data_6=sorted(dict_data.items(),key=operator.itemgetter(1))
test_data_7=sorted(dict_data.items(),key=operator.itemgetter(1),reverse=True)
print(test_data_6) #[(8, 2), (10, 5), (7, 6), (6, 9), (3, 11)]
print(test_data_7) #[(3, 11), (6, 9), (7, 6), (10, 5), (8, 2)]

附:operator库常用函数说明

操作 语法 函数
相加 a + b add(a, b)
字符串拼接 seq1 + seq2 concat(seq1, seq2)
包含测试 obj in seq contains(seq, obj)
普通除法 a / b truediv(a, b)
取整除法 a // b floordiv(a, b)
按位与 a & b and_(a, b)
按位异或 a ^ b xor(a, b)
按位取反 ~ a invert(a)
按位或 a | b or_(a, b)
指数运算 a ** b pow(a, b)
识别 a is b is_(a, b)
识别 a is not b is_not(a, b)
索引赋值 obj[k] = v setitem(obj, k, v)
索引删除 del obj[k] delitem(obj, k)
索引 obj[k] getitem(obj, k)
左移 lshift(a, b)
取模 a % b mod(a, b)
乘法 a * b mul(a, b)
负数 -a neg(a)
非运算 not a not_(a)
正数 + a pos(a)
右移运算 a >> b rshift(a, b)
切片赋值 seq[i:j] = values setitem(seq, slice(i, j), values)
切片删除 del seq[i:j] delitem(seq, slice(i, j))
切片 seq[i: j] getitem(seq, slice(i, j))
字符串格式化 s % obj mod(s, obj)
减法 a - b sub(a, b)
真值测试 obj truth(obj)
小于 lt(a, b)
小于等于 le(a, b)
等于 a == b eq(a, b)
不等于 a != b ne(a, b)
大于等于 a >= b ge(a, b)
大于 a > b gt(a, b)
Python 相关文章推荐
使用Python读写文本文件及编写简单的文本编辑器
Mar 11 Python
python 实时遍历日志文件
Apr 12 Python
Linux中安装Python的交互式解释器IPython的教程
Jun 13 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
Jul 13 Python
Python数据集切分实例
Dec 08 Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
Mar 01 Python
opencv与numpy的图像基本操作
Mar 08 Python
使用Pandas对数据进行筛选和排序的实现
Jul 29 Python
pandas DataFrame的修改方法(值、列、索引)
Aug 02 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
Oct 30 Python
利用pyshp包给shapefile文件添加字段的实例
Dec 06 Python
在Tensorflow中实现leakyRelu操作详解(高效)
Jun 30 Python
对json字符串与python字符串的不同之处详解
Dec 19 #Python
浅谈Python接口对json串的处理方法
Dec 19 #Python
python实现的MySQL增删改查操作实例小结
Dec 19 #Python
python3 http提交json参数并获取返回值的方法
Dec 19 #Python
python3.6使用urllib完成下载的实例
Dec 19 #Python
使用urllib库的urlretrieve()方法下载网络文件到本地的方法
Dec 19 #Python
对python内置map和six.moves.map的区别详解
Dec 19 #Python
You might like
php页面消耗内存过大的处理办法
2013/03/18 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
2016/04/22 PHP
PHP重定向与伪静态区别
2017/02/19 PHP
PHP中的日期时间处理利器实例(Carbon)
2017/06/09 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
jQuery 取值、赋值的基本方法整理
2014/03/31 Javascript
jQuery过滤选择器:not()方法使用介绍
2014/04/20 Javascript
js函数内变量的作用域分析
2015/01/12 Javascript
JQuery的ON()方法支持的所有事件罗列
2015/02/28 Javascript
详解Nuxt.js Vue服务端渲染摸索
2018/02/08 Javascript
vue构建动态表单的方法示例
2018/09/22 Javascript
Angular ui-roter 和AngularJS 通过 ocLazyLoad 实现动态(懒)加载模块和依赖
2018/11/25 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
封装Vue Element的table表格组件的示例详解
2020/08/19 Javascript
[48:44]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS HGT
2014/05/22 DOTA
[01:28:44]DOTA2-DPC中国联赛定级赛 RNG vs iG BO3第一场 1月10日
2021/03/11 DOTA
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
Python 字符串类型列表转换成真正列表类型过程解析
2019/08/26 Python
基于Python批量生成指定尺寸缩略图代码实例
2019/11/20 Python
Pytorch中Tensor与各种图像格式的相互转化详解
2019/12/26 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
2020/02/18 Python
python网络编程之五子棋游戏
2020/05/14 Python
python如何利用Mitmproxy抓包
2020/10/10 Python
如何使用amaze ui的分页样式封装一个通用的JS分页控件
2020/08/21 HTML / CSS
澳大利亚首个在线预订旅游网站:Wotif
2017/07/19 全球购物
英国最大的体育&时尚零售公司:JD Sports
2017/12/13 全球购物
Alexandre Birman美国官网:亚历山大·伯曼
2019/10/30 全球购物
师范毕业生求职自荐信
2013/09/25 职场文书
思想政治自我鉴定
2013/10/06 职场文书
党校学习自我鉴定
2014/02/24 职场文书
《美丽的南沙群岛》教学反思
2014/04/27 职场文书
ktv筹备计划书
2014/05/03 职场文书
2014年中秋寄语
2014/08/11 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
我的兄弟姐妹观后感
2015/06/15 职场文书
ajax请求前端跨域问题原因及解决方案
2021/10/16 Javascript