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常用模块介绍
Nov 21 Python
Python自动化开发学习之三级菜单制作
Jul 14 Python
python使用PyCharm进行远程开发和调试
Nov 02 Python
Python实现将doc转化pdf格式文档的方法
Jan 19 Python
pandas对指定列进行填充的方法
Apr 11 Python
python判断计算机是否有网络连接的实例
Dec 15 Python
python字符串替换第一个字符串的方法
Jun 26 Python
tensorflow实现测试时读取任意指定的check point的网络参数
Jan 21 Python
Django模板获取field的verbose_name实例
May 19 Python
Python爬虫设置ip代理过程解析
Jul 20 Python
python七种方法判断字符串是否包含子串
Aug 18 Python
python如何绘制疫情图
Sep 16 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 zend解密软件绿色版测试可用
2008/04/14 PHP
Thinkphp搜索时首页分页和搜索页保持条件分页的方法
2014/12/05 PHP
PHP简单实现生成txt文件到指定目录的方法
2016/04/25 PHP
Yii1.1中通过Sql查询进行的分页操作方法
2017/03/16 PHP
PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)
2017/06/16 PHP
thinkPHP框架RBAC实现原理分析
2019/02/01 PHP
javascript读取xml
2006/11/04 Javascript
用prototype实现的简单小巧的多级联动菜单
2007/03/24 Javascript
jquery Mobile入门—多页面切换示例学习
2013/01/08 Javascript
jquery ready(fn)事件使用介绍
2013/08/21 Javascript
开发插件的两个方法jquery.fn.extend与jquery.extend
2013/11/21 Javascript
比较不错的JS/JQuery显示或隐藏文本的方法
2014/02/13 Javascript
Javascript数组与字典用法分析
2014/12/13 Javascript
深入理解JavaScript的React框架的原理
2015/07/02 Javascript
jQuery简单实现两级下拉菜单效果代码
2015/09/15 Javascript
Bootstrap表单布局样式源代码
2016/07/04 Javascript
bootstrap模态框垂直居中效果
2016/12/03 Javascript
详解create-react-app 自定义 eslint 配置
2018/06/07 Javascript
如何在JavaScript中优雅的提取循环内数据详解
2019/03/04 Javascript
Vue3 源码导读(推荐)
2019/10/14 Javascript
node.JS路径解析之PATH模块使用方法详解
2020/02/06 Javascript
javascript实现打砖块小游戏(附完整源码)
2020/09/18 Javascript
如何将Node.js中的回调转换为Promise
2020/11/10 Javascript
[04:26]2014DOTA2国际邀请赛-Newbee顺利进入胜者组决赛 独家专访战神7
2014/07/19 DOTA
对numpy中布尔型数组的处理方法详解
2018/04/17 Python
Python实现带下标索引的遍历操作示例
2019/05/30 Python
python库matplotlib绘制坐标图
2019/10/18 Python
PyTorch 导数应用的使用教程
2020/08/31 Python
加拿大最大的箱包及旅游配件零售商:Bentley Leathers
2017/07/19 全球购物
教师见习期自我鉴定
2014/04/28 职场文书
物业保安岗位职责
2014/07/02 职场文书
理财计划书
2014/08/14 职场文书
乡镇党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
2015年简历自我评价范文
2015/03/11 职场文书
致短跑运动员加油稿
2015/07/21 职场文书
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python