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 12 Python
同时安装Python2 & Python3 cmd下版本自由选择的方法
Dec 09 Python
用pycharm开发django项目示例代码
Oct 24 Python
python如何制作缩略图
Apr 30 Python
JupyterNotebook 输出窗口的显示效果调整方法
Apr 13 Python
Python 找出出现次数超过数组长度一半的元素实例
May 11 Python
Python3爬虫中Selenium的用法详解
Jul 10 Python
python中加背景音乐如何操作
Jul 19 Python
python中Django文件上传方法详解
Aug 05 Python
python开发一款翻译工具
Oct 10 Python
Python 微信公众号文章爬取的示例代码
Nov 30 Python
Pillow图像处理库安装及使用
Apr 12 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 addslashes()与addclashes()函数的区别和比较
2013/06/24 PHP
CURL状态码列表(详细)
2013/06/27 PHP
JavaScript基本对象
2007/01/11 Javascript
合并table相同单元格的jquery插件分享(很精简)
2011/06/20 Javascript
jquery子元素过滤选择器使用示例
2013/06/24 Javascript
js如何判断不同系统的浏览器类型
2013/10/28 Javascript
jQuery 计算iframe 窗口大小的方法
2014/05/13 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
JS原型、原型链深入理解
2016/02/27 Javascript
jQuery实现的导航下拉菜单效果
2016/07/04 Javascript
jQuery 3.0中存在问题及解决办法
2016/07/15 Javascript
利用jquery获取select下拉框的值
2016/11/23 Javascript
bootstrap警告框使用方法解析
2017/01/13 Javascript
js 数据存储和DOM编程
2017/02/09 Javascript
原生JavaScript来实现对dom元素class的操作方法(推荐)
2017/08/16 Javascript
JS实现颜色的10进制转化成rgba格式的方法
2017/09/04 Javascript
详解JavaScript中的六种错误类型
2017/09/21 Javascript
基于bootstrap写的一点localStorage本地储存
2017/11/21 Javascript
mongoose更新对象的两种方法示例比较
2017/12/19 Javascript
JavaScript多态与封装实例分析
2018/07/27 Javascript
vue项目前端埋点的实现
2019/03/06 Javascript
[50:22]完美盛典-2018年度红毯走秀
2018/12/16 DOTA
python基础教程之类class定义使用方法
2014/02/20 Python
python脚本实现数据导出excel格式的简单方法(推荐)
2016/12/30 Python
Python连接phoenix的方法示例
2017/09/29 Python
python删除某个字符
2018/03/19 Python
python批量赋值操作实例
2018/10/22 Python
如何在python中执行另一个py文件
2020/04/30 Python
Python虚拟环境的创建和使用详解
2020/09/07 Python
用C或者C++语言实现SOCKET通信
2015/02/24 面试题
高二美术教学反思
2014/01/14 职场文书
《有余数的除法》教学反思
2016/02/22 职场文书
导游词之潮音寺
2019/09/26 职场文书
Redis监控工具RedisInsight安装与使用
2022/03/21 Redis
Golang原生rpc(rpc服务端源码解读)
2022/04/07 Golang
Android开发 使用文件储存的方式保存QQ密码
2022/04/24 Java/Android