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实现给字典添加条目的方法
Sep 25 Python
给Python初学者的一些编程技巧
Apr 03 Python
Python的Flask框架及Nginx实现静态文件访问限制功能
Jun 27 Python
遗传算法python版
Mar 19 Python
pandas数值计算与排序方法
Apr 12 Python
使用pycharm生成代码模板的实例
May 23 Python
Python中正则表达式的用法总结
Feb 22 Python
Flask框架学习笔记之模板操作实例详解
Aug 15 Python
Python拼接字符串的7种方式详解
Mar 19 Python
Django ORM实现按天获取数据去重求和例子
May 18 Python
如何一键升级Python所有包
Nov 05 Python
Python查找算法的实现 (线性、二分,分块、插值查找算法)
Apr 24 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正确解析UTF-8字符串技巧应用
2012/11/07 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
2014/07/29 PHP
Zend Framework教程之Zend_Db_Table表关联实例详解
2016/03/23 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
2016/11/21 PHP
PHP yield关键字功能与用法分析
2019/01/03 PHP
PHP函数积累总结
2019/03/19 PHP
jQuery实战之仿淘宝商城左侧导航效果
2011/04/12 Javascript
javascript里模拟sleep(两种实现方式)
2013/01/25 Javascript
javascript和HTML5利用canvas构建猜牌游戏实现算法
2013/07/17 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
jquery读取xml文件实现省市县三级联动的方法
2015/05/29 Javascript
jQuery学习笔记之Ajax用法实例详解
2015/12/01 Javascript
Vuejs第十二篇之动态组件全面解析
2016/09/09 Javascript
node安装--linux下的快速安装教程
2017/03/21 Javascript
简单的Vue SSR的示例代码
2018/01/12 Javascript
微信小程序实现的3d轮播图效果示例【基于swiper组件】
2018/12/11 Javascript
vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)
2019/06/04 Javascript
解决VueCil代理本地proxytable无效报错404的问题
2020/11/07 Javascript
[02:07]2017国际邀请赛中国区预选赛直邀战队前瞻
2017/06/23 DOTA
python通过imaplib模块读取gmail里邮件的方法
2015/05/08 Python
python使用matplotlib绘制折线图教程
2017/02/08 Python
Python实现对一个函数应用多个装饰器的方法示例
2018/02/09 Python
Python微信操控itchat的方法
2019/05/31 Python
python之生产者消费者模型实现详解
2019/07/27 Python
关于pytorch多GPU训练实例与性能对比分析
2019/08/19 Python
python爬虫开发之urllib模块详细使用方法与实例全解
2020/03/09 Python
Python csv文件记录流程代码解析
2020/07/16 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
2021/01/27 Python
html5中去掉input type date默认样式的方法
2018/09/06 HTML / CSS
关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法
2016/01/27 HTML / CSS
世界上最大的汽车共享网站:Zipcar
2017/01/14 全球购物
澳大利亚墨水站Ink Station:墨水和碳粉打印机墨盒
2019/03/24 全球购物
个人工作表现评语
2014/04/30 职场文书
身边的榜样活动方案
2014/08/20 职场文书
《童年》读后感(三篇)
2019/08/27 职场文书
Python机器学习实战之k-近邻算法的实现
2021/11/27 Python