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中for循环和while循环的基本使用方法
Aug 21 Python
Python复制文件操作实例详解
Nov 10 Python
Python 模拟购物车的实例讲解
Sep 11 Python
Python简单计算数组元素平均值的方法示例
Dec 26 Python
Python使用pydub库对mp3与wav格式进行互转的方法
Jan 10 Python
eclipse创建python项目步骤详解
May 10 Python
详解python深浅拷贝区别
Jun 24 Python
Flask配置Cors跨域的实现
Jul 12 Python
如何在Django中使用聚合的实现示例
Mar 23 Python
Python实现爬取并分析电商评论
Jun 19 Python
Python3交互式shell ipython3安装及使用详解
Jul 11 Python
Pytorch 实现变量类型转换
May 17 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
SONY ICF-SW07收音机电路分析
2021/03/02 无线电
虹吸壶是谁发明的?煮出来的咖啡好喝吗
2021/03/04 冲泡冲煮
解析PHP自带的进位制之间的转换函数
2013/06/08 PHP
ThinkPHP采用实现三级循环代码实例
2014/07/18 PHP
javascript常用代码段搜集
2014/12/04 Javascript
jquery实现叠层3D文字特效代码分享
2015/08/21 Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
2015/09/18 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
2016/04/07 Javascript
JavaScript函数表达式详解及实例
2017/05/05 Javascript
vue.js选中动态绑定的radio的指定项
2017/06/02 Javascript
node+express+ejs使用模版引擎做的一个示例demo
2017/09/18 Javascript
vue项目中使用ueditor的实例讲解
2018/03/05 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:奇迹哥卡尔秀翻全场
2017/03/28 DOTA
python实现的阳历转阴历(农历)算法
2014/04/25 Python
python爬虫入门教程之点点美女图片爬虫代码分享
2014/09/02 Python
Python脚本实现网卡流量监控
2015/02/14 Python
Django卸载之后重新安装的方法
2017/03/15 Python
Python设计模式之门面模式简单示例
2018/01/09 Python
Ubuntu下使用Python实现游戏制作中的切分图片功能
2018/03/30 Python
python正则表达式之对号入座篇
2018/07/24 Python
python 计算数据偏差和峰度的方法
2019/06/29 Python
如何爬取通过ajax加载数据的网站
2019/08/15 Python
关于pycharm中pip版本10.0无法使用的解决办法
2019/10/10 Python
python FTP批量下载/删除/上传实例
2019/12/22 Python
Django实现celery定时任务过程解析
2020/04/21 Python
django 利用Q对象与F对象进行查询的实现
2020/05/15 Python
Hotels.com印度:酒店预订
2019/05/11 全球购物
业务助理岗位职责
2013/11/18 职场文书
中专生自荐信
2014/06/25 职场文书
国际残疾人日广播稿范文
2014/10/09 职场文书
校园新闻广播稿5篇
2014/10/10 职场文书
如何写好活动总结
2019/06/21 职场文书
Netty分布式客户端接入流程初始化源码分析
2022/03/25 Java/Android
Python中生成随机数据安全性、多功能性、用途和速度方面进行比较
2022/04/14 Python
教你使用RustDesk 搭建一个自己的远程桌面中继服务器
2022/08/14 Servers
mysql数据库如何转移到oracle
2022/12/24 MySQL