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中装饰器的用法
Apr 27 Python
浅谈Python类的__getitem__和__setitem__特殊方法
Dec 25 Python
Python使用plotly绘制数据图表的方法
Jul 18 Python
Python中标准库OS的常用方法总结大全
Jul 19 Python
Python3学习笔记之列表方法示例详解
Oct 06 Python
Python 数据处理库 pandas 入门教程基本操作
Apr 19 Python
pycharm配置pyqt5-tools开发环境的方法步骤
Feb 11 Python
利用Python半自动化生成Nessus报告的方法
Mar 19 Python
PYTHON绘制雷达图代码实例
Oct 15 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
Mar 30 Python
django ObjectDoesNotExist 和 DoesNotExist的用法
Jul 09 Python
Python调用JavaScript代码的方法
Oct 27 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 MSSQL 存储过程的方法
2008/12/24 PHP
laravel安装zend opcache加速器教程
2015/03/02 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
2018/09/05 PHP
javascript下判断一个元素是否存在的代码
2010/03/05 Javascript
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
js实现通用的微信分享组件示例
2014/03/10 Javascript
在NodeJS中启用ECMAScript 6小结(windos以及Linux)
2014/07/15 NodeJs
jQuery 中DOM 操作详解
2015/01/13 Javascript
浅谈ES6新增的数组方法和对象
2017/08/08 Javascript
react native带索引的城市列表组件的实例代码
2017/08/08 Javascript
解决bootstrap模态框数据缓存的问题方法
2018/08/10 Javascript
原生JS检测CSS3动画是否结束的方法详解
2019/01/27 Javascript
JS html事件冒泡和事件捕获操作示例
2019/05/01 Javascript
微信小程序 swiper 组件遇到的问题及解决方法
2019/05/26 Javascript
JS XMLHttpRequest原理与使用方法深入详解
2020/04/30 Javascript
Vue仿百度搜索功能
2020/12/28 Vue.js
[01:51]2014DOTA2国际邀请赛 这个赛场没有失败者VGTi5再见
2014/07/23 DOTA
Python列表计数及插入实例
2014/12/17 Python
Python中的条件判断语句与循环语句用法小结
2016/03/21 Python
Python处理中文标点符号大集合
2018/05/14 Python
解决python xlrd无法读取excel文件的问题
2018/12/25 Python
在Python中调用Ping命令,批量IP的方法
2019/01/26 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
2019/07/19 Python
pytorch 归一化与反归一化实例
2019/12/31 Python
Zadig&Voltaire官网:法国时装品牌
2018/01/05 全球购物
澳大利亚当地最大的时装生产商:Cue
2018/08/06 全球购物
餐厅总经理岗位职责
2013/12/31 职场文书
校长创先争优承诺书
2014/08/30 职场文书
农林经济管理专业自荐信
2014/09/01 职场文书
考试作弊被抓检讨书
2014/10/02 职场文书
2016年小学生新年寄语
2015/08/18 职场文书
会计工作自我鉴定范文
2019/06/21 职场文书
python 爬取哔哩哔哩up主信息和投稿视频
2021/06/07 Python
pycharm部署django项目到云服务器的详细流程
2021/06/29 Python
Python 快速验证代理IP是否有效的方法实现
2021/07/15 Python
Vue OpenLayer测距功能的实现
2022/04/20 Vue.js