python字典排序并输出_对Python的字典进行排序
我们知道Python的内置dictionary数据类型是无序的,通过key来获取对应的value。可是有时我们需要对dictionary中 的item进行排序输出,可能根据key,也可能根据value来排。到底有多少种方法可以实现对dictionary的内容进行排序输出呢?下面摘取了 一些精彩的解决办法。
python对容器内数据的排序有两种,一种是容器自己的sort函数,一种是内建的sorted函数。
sort函数和sorted函数唯一的不同是,sort是在容器内(in-place)排序,sorted生成一个新的排好序的容器。
1 按照Key值排序
#最简单的方法,这个是按照key值排序:
def sortedDictValues1(adict):
items = adict.items()
items.sort()
return [value for key, value in items]
#又一个按照key值排序,貌似比上一个速度要快点
def sortedDictValues2(adict):
keys = adict.keys()
keys.sort()
return [dict[key] for key in keys]
#还是按key值排序,据说更快。。。而且当key为tuple的时候照样适用
def sortedDictValues3(adict):
keys = adict.keys()
keys.sort()
return map(adict.get, keys)
#一行语句搞定:
[(k,di[k]) for k in sorted(di.keys())]
#用sorted函数的key参数(func)排序:
#按照key进行排序
print sorted(dict1.items(), key=lambda d: d[0])
2 按照value值排序
#来一个根据value排序的,先把item的key和value交换位置放入一个list中,再根据list每个元素的第一个值,即原来的value值,
排序:
def sort_by_value(d):
items=d.items()
backitems=[[v[1],v[0]] for v in items]
backitems.sort()
return [ backitems[i][1] for i in range(0,len(backitems))]
#还是一行搞定:
[ v for v in sorted(di.values())]
#用lambda表达式来排序,更灵活:
sorted(d.items(), lambda x, y: cmp(x[1], y[1])), 或反序:
sorted(d.items(), lambda x, y: cmp(x[1], y[1]), reverse=True)
#用sorted函数的key参数(func)排序: # 按照value进行排序
print sorted(dict1.items(), key=lambda d: d[1])
知识点扩展:
准备知识:
在python里,字典dictionary是内置的数据类型,是个无序的存储结构,每一元素是key-value对:
如:dict = {'username':'password','database':'master'},其中'username'和'database'是key,而'password'和'master'是value,可以通过d[key]获得对应值value的引用,但是不能通过value得到key。
对于dictionnary,需知道以下几点注意事项:
a、 dictionary 的 key 是大小写敏感的;
b、 一个dictionary中不能有重复的 key;
c、 dictionary是无序的,没有元素顺序的概念,它们只是序偶的简单排列。推荐教程:《PHP》《Python教程》
python字典排序并输出_对Python的字典进行排序相关推荐
- python整数逆序输出_利用Python实现倒序任意整数
这是很早以前学习C时候做过的一个练习题,题目的要求大概是把用户输入的三位数倒序输出,比如说用户输入123,然后程序应该输出的结果是321.如果遇到用户输入100,那么程序应该输出1.然后我给扩展一下, ...
- python不换行空格输出_解决Python print输出不换行没空格的问题
解决Python print输出不换行没空格的问题 今天在做编程题的时候发现Python的print输出默认换行输出,并且输出后有空格. 题目要求输出 122 而我的输出是: 1 2 2 于是我百度查 ...
- python stdout stderr 一起输出_合并Python脚本的子进程stdout和stderr,同时保持它们的区别...
我发现自己最近不得不解决这个问题,而且花了一段时间才得到一些我觉得在大多数情况下都能正常工作的东西,所以就这样!(它还具有通过python记录器处理输出的良好副作用,我注意到这是Stackoverfl ...
- python输入文字垂直输出_在python中如何将横向输入的中文竖直输出
s.strip('.').split(',') 去掉最后的句号,然后以逗号为分隔符,把句子分开,存到一个list当中.执行完成后, lines=['白日依山尽', '黄河入海流', '欲穷千里目', ...
- python从小到大的顺序输出_「小白专栏」Python中使用for循环,为什么输出结果不是按顺序?...
欢迎各位小哥哥小姐姐阅读本的文章,对大家学习有帮助,请点赞加关注哦!!!!!!!!!! 您的点赞和关注将是我持续更新的动力呢.^v^ 有不懂的问题可以私聊我哦! 前言 如图,为什么输出的不是按Jen, ...
- python字典常用的操作_说说Python字典以及基本操作?
公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...
- python代数式的表达方式_关于python字典类型最疯狂的表达方式
一个Python字典表达式谜题 让我们探究一下下面这个晦涩的python字典表达式,以找出在python解释器的中未知的内部到底发生了什么. # 一个python谜题:这是一个秘密 # 这个表达式计算 ...
- python花式输出_关于python字符串format的一些花式用法
目录: 前提: python中字符串的format功能非常强大,可以说完全能够替代其他的字符串使用方法,但是在后期的项目开发中使用的并不是特别的多, 以至于想用的时候会想不起来准确的使用方法,所以在这 ...
- python程序运行结果不停_关于python:在进程运行时不断打印Subprocess输出
要从我的python脚本启动程序,我使用以下方法: def execute(command): process = subprocess.Popen(command, shell=True, stdo ...
最新文章
- 回头验卦,占IT公司例中淘宝案例之总结
- [转载]offsetHeight , clientHeight, scrollHeight 区别
- Router Modules模块化
- Spring的自动装配方法
- 字符串过长用...代替,鼠标悬停显示所有内容
- 计算机图形学颜色表示,计算机图形学 颜色表示模型.ppt
- Hinton胶囊网络代码正式开源,5天GitHub fork超1.4万
- 【现代控制理论基础】二、线性控制系统的运动分析
- 程序猿来找找自己的目标
- 【4分频电路 -verilog】
- SAP各模块优缺点和发展简析
- C++将一个无效参数传递给了将无效参数视为严重错误的函数
- Python+Zookeeper操作
- 什么是办公自动化(OA)?
- java分词支持拼音_java 支持分词的高性能拼音转换工具,速度是 pinyin4j 的两倍...
- java有参构造_java的有参构造有什么用
- 全球及中国邮件营销服务行业发展趋势及投资策略分析报告2022-2028年
- 小鸟云:因被黑客窃取190GB文件 厄瓜多尔国营电信公司决定采用云服务器
- 你的孤独,虽败犹荣 很喜欢的句子
- html+CSS让背景图片充满整个屏幕
热门文章
- batchupdate写法_批量更新sql_批量update_sql(Batch update sql_ batch update_sql).doc
- 用animation做无缝匀速滚动
- c语言计算火车运行图调整,列车运行图调整是什么意思?调整运行图的这班车还能正常运行吗?...
- Project之条形图列表不显示任务名称
- 串口服务器支持多台上位机,串口服务器常见的5大问题
- tiktok数据竟品分析网站,跨境卖家选品网站吗?
- php E58论坛有哪些比拟不错的论坛源代码的网站
- python爬虫之Scrapy爬取股票信息的示例
- iOS实现HTTPS访问
- 个人永久性免费-Excel催化剂功能第67波-父子结构表转换添加辅助信息之子父关系篇...