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实现的udp协议Server和Client代码实例
Jun 04 Python
Python实现简单过滤文本段的方法
May 24 Python
Python中偏函数用法示例
Jun 07 Python
django基础学习之send_mail功能
Aug 07 Python
Django中自定义查询对象的具体使用
Oct 13 Python
Python数据可视化:箱线图多种库画法
Nov 06 Python
python numpy 矩阵堆叠实例
Jan 17 Python
python-xpath获取html文档的部分内容
Mar 06 Python
Python模拟登入的N种方式(建议收藏)
May 31 Python
深入分析python 排序
Aug 24 Python
python Matplotlib基础--如何添加文本和标注
Jan 26 Python
tensorflow2.0教程之Keras快速入门
Feb 20 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
什么是短波收听SWL
2021/03/01 无线电
php mssql 时间格式问题
2009/01/13 PHP
php继承的一个应用
2011/09/06 PHP
php对mongodb的扩展(初出茅庐)
2012/11/11 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
php生成酷炫的四个字符验证码
2016/04/22 PHP
Eclipse PHPEclipse 配置的具体步骤
2017/08/08 PHP
jquery 回车事件实现代码
2011/08/23 Javascript
JavaScript分页功能的实现方法
2015/04/25 Javascript
javascript中setTimeout使用指南
2015/07/26 Javascript
JavaScript编程中实现对象封装特性的实例讲解
2016/06/24 Javascript
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
解决ztree搜索中多级菜单展示不全问题
2017/07/05 Javascript
vue 计时器组件的实现代码
2017/09/14 Javascript
实例分析JS与Node.js中的事件循环
2017/12/12 Javascript
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
2017/12/18 jQuery
通过jquery.cookie.js实现记住用户名、密码登录功能
2018/06/20 jQuery
详解wepy开发小程序踩过的坑(小结)
2019/05/22 Javascript
详解微信小程序支付流程与梳理
2019/07/16 Javascript
JS实现网页时钟特效
2020/03/25 Javascript
js实现html滑动图片拼图验证
2020/06/24 Javascript
Python字符串替换实例分析
2015/05/11 Python
Python六大开源框架对比
2015/10/19 Python
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
Python+树莓派+YOLO打造一款人工智能照相机
2018/01/02 Python
pygame游戏之旅 如何制作游戏障碍
2018/11/20 Python
python面试题小结附答案实例代码
2019/04/11 Python
使用PyTorch训练一个图像分类器实例
2020/01/08 Python
python标准库OS模块函数列表与实例全解
2020/03/10 Python
Python中操作各种多媒体,视频、音频到图片的代码详解
2020/06/04 Python
粉红色的鲸鱼:Vineyard Vines
2018/02/17 全球购物
美国在线宠物商店:Chewy
2019/01/12 全球购物
大学生毕业自荐信
2013/10/10 职场文书
房地产销售员的自我评价分享
2013/12/04 职场文书
经济管理专业毕业生自荐信范文
2014/01/02 职场文书
Go Grpc Gateway兼容HTTP协议文档自动生成网关
2022/06/16 Golang