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下载FTP上的文件夹的实现代码
Feb 10 Python
python聊天程序实例代码分享
Nov 18 Python
python处理文本文件并生成指定格式的文件
Jul 31 Python
python使用json序列化datetime类型实例解析
Feb 11 Python
利用python将json数据转换为csv格式的方法
Mar 22 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
Nov 07 Python
利用python提取wav文件的mfcc方法
Jan 09 Python
Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法
Apr 01 Python
wxpython+pymysql实现用户登陆功能
Nov 19 Python
Django框架中间件定义与使用方法案例分析
Nov 28 Python
对tensorflow中的strides参数使用详解
Jan 04 Python
python3实现将json对象存入Redis以及数据的导入导出
Jul 16 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 短链接算法收集与分析
2011/12/30 PHP
Symfony数据校验方法实例分析
2015/01/26 PHP
php中this关键字用法分析
2016/12/07 PHP
关于include标签导致js路径找不到的问题分析及解决
2013/07/09 Javascript
js和as的稳定传值问题解决
2013/07/14 Javascript
javascript中如何处理引号编码"
2013/08/15 Javascript
用js格式化金额可设置保留的小数位数
2014/05/09 Javascript
js的延迟执行问题分析
2014/06/23 Javascript
让浏览器DOM元素最后加载的js方法
2014/07/29 Javascript
jQuery选择器源码解读(八):addCombinator函数
2015/03/31 Javascript
js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果
2015/08/31 Javascript
Javascript中apply、call、bind的巧妙使用
2016/08/18 Javascript
详谈Angular 2+ 的表单(一)之模板驱动型表单
2017/04/25 Javascript
详解nodejs中express搭建权限管理系统
2017/09/15 NodeJs
细说webpack源码之compile流程-rules参数处理技巧(1)
2017/12/26 Javascript
jQuery与vue实现拖动验证码功能
2018/01/30 jQuery
详解Angular6.0使用路由步骤(共7步)
2018/06/29 Javascript
vue解决弹出蒙层滑动穿透问题的方法
2018/09/22 Javascript
JavaScript时间与时间戳的转换操作实例分析
2018/12/07 Javascript
vue移动端写的拖拽功能示例代码
2020/09/09 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
2020/10/24 Javascript
python itchat实现微信自动回复的示例代码
2017/08/14 Python
cmd运行python文件时对结果进行保存的方法
2018/05/16 Python
Python中dict和set的用法讲解
2019/03/28 Python
kafka-python 获取topic lag值方式
2019/12/23 Python
关于多元线性回归分析——Python&SPSS
2020/02/24 Python
Win10下用Anaconda安装TensorFlow(图文教程)
2020/06/18 Python
PyCharm最新激活码(2020/10/27全网最新)
2020/10/27 Python
Matlab使用Plot函数实现数据动态显示方法总结
2021/02/25 Python
HTML5地理定位实例
2014/10/15 HTML / CSS
英国领先的瓷砖专家:Walls and Floors
2018/04/27 全球购物
哈萨克斯坦最大的时装、鞋子和配饰在线商店:Lamoda.kz
2019/11/19 全球购物
网络工程师个人的自我评价范文
2013/10/01 职场文书
党员公开承诺书
2014/03/25 职场文书
运动会演讲稿100字
2014/08/25 职场文书
计划生育汇报材料
2014/12/26 职场文书