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 相关文章推荐
在Windows服务器下用Apache和mod_wsgi配置Python应用的教程
May 06 Python
python读取word文档的方法
May 09 Python
Python实现二维有序数组查找的方法
Apr 27 Python
python3中int(整型)的使用教程
Mar 23 Python
python实现单线程多任务非阻塞TCP服务端
Jun 13 Python
python入门前的第一课 python怎样入门
Mar 06 Python
基于python实现学生管理系统
Oct 17 Python
详解Python的数据库操作(pymysql)
Apr 04 Python
NumPy统计函数的实现方法
Jan 21 Python
python 实现线程之间的通信示例
Feb 14 Python
解决Python spyder显示不全df列和行的问题
Apr 20 Python
django 连接数据库出现1045错误的解决方式
May 14 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
ajax php 实现写入数据库
2009/09/02 PHP
php中$_REQUEST、$_POST、$_GET的区别和联系小结
2011/11/23 PHP
php 批量替换程序的具体实现代码
2013/10/04 PHP
PHP把网页保存为word文件的三种方法
2014/04/01 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
PHP安装memcache扩展的步骤讲解
2019/02/14 PHP
RSA实现JS前端加密与PHP后端解密功能示例
2019/08/05 PHP
PHP编程一定要改掉的5个不良习惯
2020/09/18 PHP
让iframe框架网页在任何浏览器下自动伸缩
2006/08/18 Javascript
JavaScript Chart 插件整理
2010/06/18 Javascript
使图片旋转的3种解决方案
2013/11/21 Javascript
JavaScript中用字面量创建对象介绍
2014/12/31 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
2015/02/24 Javascript
JavaScript子窗口调用父窗口变量和函数的方法
2015/10/09 Javascript
JavaScript jQuery 中定义数组与操作及jquery数组操作
2015/12/18 Javascript
关于element-ui的隐藏组件el-scrollbar的使用
2019/05/29 Javascript
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
vue中使用GraphQL的实例代码
2019/11/04 Javascript
node.js如何操作MySQL数据库
2020/10/29 Javascript
通过python将大量文件按修改时间分类的方法
2018/10/17 Python
Python实现对特定列表进行从小到大排序操作示例
2019/02/11 Python
pytorch中如何使用DataLoader对数据集进行批处理的方法
2019/08/06 Python
python 画出使用分类器得到的决策边界
2019/08/21 Python
python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案
2020/08/11 Python
python 调用API接口 获取和解析 Json数据
2020/09/28 Python
日本动漫周边服饰销售网站:Atsuko
2019/12/16 全球购物
德国富尔达运动鞋店:43einhalb
2020/12/25 全球购物
小学教师学期末自我评价
2013/09/25 职场文书
工程概预算专业毕业生求职信
2013/10/04 职场文书
校园达人秀策划书
2014/01/12 职场文书
采购部经理岗位职责
2014/02/10 职场文书
幼儿园中秋节活动反思
2014/02/16 职场文书
高中军训感言600字
2014/03/11 职场文书
党员自我评价2015
2015/03/03 职场文书
Oracle更换为MySQL遇到的问题及解决
2021/05/21 Oracle
pytorch中Schedule与warmup_steps的用法说明
2021/05/24 Python