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 相关文章推荐
pygame学习笔记(2):画点的三种方法和动画实例
Apr 15 Python
实例解析Python设计模式编程之桥接模式的运用
Mar 02 Python
pandas 获取季度,月度,年度首尾日期的方法
Apr 11 Python
python线程池threadpool使用篇
Apr 27 Python
Python堆排序原理与实现方法详解
May 11 Python
Python动态生成多维数组的方法示例
Aug 09 Python
使用python获取邮箱邮件的设置方法
Sep 20 Python
命令行运行Python脚本时传入参数的三种方式详解
Oct 11 Python
如何使用python传入不确定个数参数
Feb 18 Python
java字符串格式化输出实例讲解
Jan 06 Python
python+selenium小米商城红米K40手机自动抢购的示例代码
Mar 24 Python
你喜欢篮球吗?Python实现篮球游戏
Jun 11 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
gd库图片下载类实现下载网页所有图片的php代码
2012/08/20 PHP
PHP函数之日期时间函数date()使用详解
2013/09/09 PHP
PHP中执行MYSQL事务解决数据写入不完整等情况
2014/01/07 PHP
php面向对象与面向过程两种方法给图片添加文字水印
2015/08/26 PHP
PHP错误Warning:mysql_query()解决方法
2015/10/24 PHP
PHP连接MySQL数据库并以json格式输出
2018/05/21 PHP
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
jquery validate表单验证的基本用法入门
2016/01/18 Javascript
jQuery实例—选项卡的简单实现(js源码和jQuery)
2016/06/14 Javascript
AngularJS中指令的四种基本形式实例分析
2016/11/22 Javascript
Jquery与Bootstrap实现后台管理页面增删改查功能示例
2017/01/22 Javascript
vue实现多组关键词对应高亮显示功能
2019/07/25 Javascript
多个vue子路由文件自动化合并的方法
2019/09/03 Javascript
借助云开发实现小程序短信验证码的发送
2020/01/06 Javascript
node.js 微信开发之定时获取access_token
2020/02/07 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
[02:43]2018DOTA2亚洲邀请赛主赛事首日TOP5
2018/04/04 DOTA
Python对List中的元素排序的方法
2018/04/01 Python
Python爬取商家联系电话以及各种数据的方法
2018/11/10 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
2019/06/14 Python
python爬虫增加访问量的方法
2019/08/22 Python
python二元表达式用法
2019/12/04 Python
PyTorch 解决Dataset和Dataloader遇到的问题
2020/01/08 Python
解决Python发送Http请求时,中文乱码的问题
2020/04/30 Python
Django Model中字段(field)的各种选项说明
2020/05/19 Python
CSS3系列之3D制作方法案例
2017/08/14 HTML / CSS
Reebok俄罗斯官方网上商店:购买锐步运动服装和鞋子
2016/09/26 全球购物
土耳其时尚潮流在线购物网站:Trendyol
2017/10/10 全球购物
英国DIY和家居装饰领域的主要品牌:Wickes
2019/11/26 全球购物
C有"按引用传递"吗
2016/09/06 面试题
C语言50道问题
2014/10/23 面试题
化工工艺专业求职信
2013/09/22 职场文书
2014年班主任自我评价范文
2014/04/23 职场文书
公司总经理任命书
2014/06/05 职场文书
劳动模范获奖感言
2015/07/31 职场文书
简单实现一个手持弹幕功能+文字抖动特效
2021/03/31 HTML / CSS