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下的XSLT API进行web开发的简单教程
Apr 15 Python
用Python实现KNN分类算法
Dec 22 Python
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
Feb 21 Python
Python使用while循环花式打印乘法表
Jan 28 Python
Pycharm连接远程服务器并实现远程调试的实现
Aug 02 Python
使用python模拟命令行终端的示例
Aug 13 Python
Python实现动态给类和对象添加属性和方法操作示例
Feb 29 Python
python如何将两张图片生成为全景图片
Mar 05 Python
python脚本监控logstash进程并邮件告警实例
Apr 28 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
Jun 16 Python
Windows 平台做 Python 开发的最佳组合(推荐)
Jul 27 Python
关于python中导入文件到list的问题
Oct 31 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 文件上传全攻略
2010/04/28 PHP
php中ob_flush函数和flush函数用法分析
2015/03/18 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
2015/06/17 PHP
屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键 的javascript代码
2007/04/01 Javascript
jQuery教程 $()包装函数来实现数组元素分页效果
2013/08/13 Javascript
html5的自定义data-*属性和jquery的data()方法的使用示例
2013/08/21 Javascript
在HTML代码中使用JavaScript代码的例子
2014/10/16 Javascript
Js实现自定义右键行为
2015/03/26 Javascript
JS使用cookie实现DIV提示框只显示一次的方法
2015/11/05 Javascript
详解XMLHttpRequest(一)同步请求和异步请求
2016/09/14 Javascript
JavaScript  event对象整理及详细介绍
2016/10/10 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
2016/10/25 Javascript
vue项目中引入Sass实例方法
2019/08/27 Javascript
Vue-CLI 3 scp2自动部署项目至服务器的方法
2020/07/24 Javascript
Python+django实现简单的文件上传
2016/08/17 Python
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
2016/10/12 Python
python编写简易聊天室实现局域网内聊天功能
2018/07/28 Python
python二进制文件的转译详解
2019/07/03 Python
Kali Linux安装ipython2 和 ipython3的方法
2019/07/11 Python
python opencv将图片转为灰度图的方法示例
2019/07/31 Python
Django 解决由save方法引发的错误
2020/05/21 Python
解析Python 偏函数用法全方位实现
2020/06/26 Python
Python高并发和多线程有什么关系
2020/11/14 Python
Django解决frame拒绝问题的方法
2020/12/18 Python
canvas实现俄罗斯方块的方法示例
2018/12/13 HTML / CSS
英国索普公园票务和酒店套餐:Thorpe Breaks
2019/09/14 全球购物
COSETTE官网:奢华,每天
2020/03/22 全球购物
澳大利亚头发和美容产品购物网站:OZ Hair & Beauty
2020/03/27 全球购物
临床医师专业个人自我评价
2014/01/08 职场文书
主管会计岗位责任制
2014/02/10 职场文书
中学生学雷锋演讲稿
2014/04/26 职场文书
习总书记三严三实学习心得体会
2014/10/13 职场文书
党的群众路线教育实践活动实施方案
2014/10/31 职场文书
学校元旦晚会开场白
2015/05/29 职场文书
保险公司增员口号
2015/12/25 职场文书
Vue+TypeScript中处理computed方式
2022/04/02 Vue.js