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使用datetime模块计算各种时间间隔的方法
Mar 24 Python
python list排序的两种方法及实例讲解
Mar 20 Python
Python外星人入侵游戏编程完整版
Mar 30 Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
Jan 06 Python
python中的内置函数max()和min()及mas()函数的高级用法
Mar 29 Python
详谈pandas中agg函数和apply函数的区别
Apr 20 Python
解决python爬虫中有中文的url问题
May 11 Python
python输出100以内的质数与合数实例代码
Jul 08 Python
对Python3之方法的覆盖与super函数详解
Jun 26 Python
使用Pandas对数据进行筛选和排序的实现
Jul 29 Python
python中如何进行连乘计算
May 28 Python
Flask-SocketIO服务端安装及使用代码示例
Nov 26 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加密解密类实例代码
2016/07/20 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
js+HTML5实现canvas多种颜色渐变效果的方法
2015/06/05 Javascript
简单讲解AngularJS的Routing路由的定义与使用
2016/03/05 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
Angular4如何自定义首屏的加载动画详解
2017/07/26 Javascript
JS返回顶部实例代码
2020/08/09 Javascript
详解Vue打包优化之code spliting
2018/04/09 Javascript
JS散列表碰撞处理、开链法、HashTable散列示例
2019/02/08 Javascript
javascript删除数组元素的七个方法示例
2019/09/09 Javascript
nuxt配置通过指定IP和端口访问的实现
2020/01/08 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
2020/11/04 Javascript
[54:56]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第三局
2016/03/06 DOTA
win7 下搭建sublime的python开发环境的配置方法
2014/06/18 Python
python从sqlite读取并显示数据的方法
2015/05/08 Python
python正则表达式的使用
2017/06/12 Python
Python基于高斯消元法计算线性方程组示例
2018/01/17 Python
django Serializer序列化使用方法详解
2018/10/16 Python
python实现AES加密解密
2019/03/28 Python
Python Threading 线程/互斥锁/死锁/GIL锁
2019/07/21 Python
PyQt5实现暗黑风格的计时器
2019/07/29 Python
django解决订单并发问题【推荐】
2019/07/31 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
让ie浏览器成为支持html5的浏览器的解决方法(使用html5shiv)
2014/04/08 HTML / CSS
Gap加拿大官网:Gap Canada
2017/08/24 全球购物
ghd澳大利亚官方网站:英国最受欢迎的美发工具品牌
2018/05/21 全球购物
巴西购物网站:Onofre Agora
2020/06/08 全球购物
业务副厂长岗位职责
2014/01/03 职场文书
大学生怎样写好自荐信
2014/02/25 职场文书
技术股份合作协议书
2014/10/05 职场文书
遗嘱格式范本
2015/08/07 职场文书
2016年师德师风学习心得体会
2016/01/12 职场文书
导游词之重庆渣滓洞
2020/01/08 职场文书
MySQL索引篇之千万级数据实战测试
2021/04/05 MySQL
redis三种高可用方式部署的实现
2021/05/11 Redis