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中使用正则表达式的后向搜索肯定模式(推荐)
Nov 11 Python
浅谈用Python实现一个大数据搜索引擎
Nov 28 Python
python做量化投资系列之比特币初始配置
Jan 23 Python
解决python "No module named pip" 的问题
Oct 13 Python
详解Python字符串切片
May 20 Python
python面试题Python2.x和Python3.x的区别
May 28 Python
TensorFLow 不同大小图片的TFrecords存取实例
Jan 20 Python
python库skimage给灰度图像染色的方法示例
Apr 27 Python
8种常用的Python工具
Aug 05 Python
python 读取串口数据的示例
Nov 09 Python
python实现录制全屏和选择区域录屏功能
Feb 05 Python
python四种出行路线规划的实现
Jun 23 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
PHP5 的对象赋值机制介绍
2011/08/02 PHP
PHP常用数组函数介绍
2014/07/28 PHP
php使用glob函数快速查询指定目录文件的方法
2014/11/15 PHP
php构造函数与析构函数
2016/04/23 PHP
php中10个不同等级压缩优化图片操作示例
2016/11/14 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
HTTP头隐藏PHP版本号实现过程解析
2020/12/09 PHP
JavaScript toFixed() 方法
2010/04/15 Javascript
js用正则表达式来验证表单(比较齐全的资源)
2013/11/17 Javascript
Node.js中使用计时器定时执行函数详解
2014/08/15 Javascript
jQuery里filter()函数与find()函数用法分析
2015/06/24 Javascript
javascript Promise简单学习使用方法小结
2016/05/17 Javascript
jQuery实现百度登录框的动态切换效果
2017/04/21 jQuery
vue 封装自定义组件之tabal列表编辑单元格组件实例代码
2017/09/07 Javascript
js 将canvas生成图片保存,或直接保存一张图片的实现方法
2018/01/02 Javascript
vue实现点击当前标签高亮效果【推荐】
2018/06/22 Javascript
JavaScript setInterval()与setTimeout()计时器
2019/12/27 Javascript
Vue快速实现通用表单验证的示例代码
2020/01/09 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
2020/05/31 Javascript
JavaScript实现雪花飘落效果
2020/12/27 Javascript
Python 比较文本相似性的方法(difflib,Levenshtein)
2018/10/15 Python
对Python捕获控制台输出流的方法详解
2019/01/07 Python
Python数据类型之Dict字典实例详解
2019/05/07 Python
PyQt5显示GIF图片的方法
2019/06/17 Python
Django之choices选项和富文本编辑器的使用详解
2020/04/01 Python
HTML5中canvas中的beginPath()和closePath()的重要性
2018/08/24 HTML / CSS
HTML5边玩边学(2)基础绘图实现方法
2010/09/21 HTML / CSS
小班下学期评语
2014/05/04 职场文书
工程部岗位职责
2015/02/10 职场文书
2015年社区平安建设工作总结
2015/05/13 职场文书
项目验收申请报告
2015/05/15 职场文书
Go语言带缓冲的通道实现
2021/04/26 Golang
如何在pycharm中快捷安装pip命令(如pygame)
2021/05/31 Python
解析Java中的static关键字
2021/06/14 Java/Android
JavaScript数组 几个常用方法总结
2021/11/11 Javascript
《黑岩★★射手 DAWN FALL》BD发售宣传CM公开
2022/04/04 日漫