python dict sorted 排序
我们知道Python的内置dictionary数据类型是无序的,通过key来获取对应的value。可是有时我们需要对dictionary中 的item进行排序输出,可能根据key,也可能根据value来排。到底有多少种方法可以实现对dictionary的内容进行排序输出呢?下面摘取了 一些精彩的解决办法。
#最简单的方法,这个是按照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())]
#来一个根据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= 参数排序:
# 按照key进行排序
print sorted(dict1.items(), key=lambda d: d[0])
# 按照value进行排序
print sorted(dict1.items(), key=lambda d: d[1])
下面给出python内置sorted函数的帮助文档:
sorted(...)
sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list
看了上面这么多种对dictionary排序的方法,其实它们的核心思想都一样,即把dictionary中的元素分离出来放到一个list中,对list排序,从而间接实现对dictionary的排序。这个“元素”可以是key,value或者item。
#################################################################################
一上转
按照value排序可以用
sorted(d.items, key=lambda d:d[1])
若版本低不支持sorted
将key,value 以tuple一起放在一个list中
l = []
l.append((akey,avalue))...
用sort()
l.sort(lambda a,b :cmp(a[1],b[1]))(cmp前加“-”表示降序排序)
python dict sorted 排序相关推荐
- python的sorted排序具体解释
排序.在编程中常常遇到的算法.我也在几篇文章中介绍了一些关于排序的算法. 有的高级语言内置了一些排序函数.本文讲述Python在这方面的工作.供使用python的程序猿们參考,也让没有使用python ...
- Python中sorted()排序与字母大小写的问题
今天我在练习python时,对字典里的键用sorted排序时发现并没有按照预期排序 研究后发现字母大小写会影响排序 首先创建一个字典,键里面的首字母有大写有小写 favorite_digit = {' ...
- python dict sorted
1. 准备知识: 在python里,字典dictionary是内置的数据类型,是个无序的存储结构,每一元素是key-value对: 如:dict = {'username':'password','d ...
- Python 之 sorted()排序详解 适用于任意可迭代对象比如列表,字典等
详细解释一下函数sorted的具体用法: 对字典: 1 >>> a = {3: '三', 5: '五', 8: '八', 1: '一'} 2 >>> b = sor ...
- python字母大小写排序_Python中sorted()排序与字母大小写的问题
今天我在练习python时,对字典里的键用sorted排序时发现并没有按照预期排序 研究后发现字母大小写会影响排序 首先创建一个字典,键里面的首字母有大写有小写 favorite_digit = { ...
- python dict排序_python 字典(dict)按键和值排序
python 字典(dict)的特点就是无序的,按照键(key)来提取相应值(value),如果我们需要字典按值排序的话,那可以用下面的方法来进行: 1 下面的是按照value的值从大到小的顺序来排序 ...
- python中用def实现自动排序_Python sorted排序方法如何实现
在给列表排序时,sorted非常好用,语法如下: sorted(iterable[, cmp[,key[,reverse]]]) sorted定义如下: sorted( iterable[, cmp[ ...
- python不用sort排序_Python排序之sortamp;sorted
1 首先,Python中sort与sorted的区别: python中列表的内置函数sort()可以对列表中的元素进行排序,sort()函数是内置函数,会改变当前对象: 而全局性的sorted()函数 ...
- python高阶函数——sorted排序算法
python高阶函数--sorted排序算法 python 内置的sorted()函数可以对一个list进行排序: >>> sorted([8,3,8,11,-2]) [-2, 3, ...
最新文章
- 基于Spark ALS算法的个性化推荐
- 每日一博 - Review线程池
- memcached全面剖析--3.memcached的删除机制和发展方向
- BZOJ1439 : YY的问题
- [你必须知道的.NET]第三十一回,深入.NET 4.0之,从“新”展望
- 如何修改bt tracker服务器,bt tracker服务器
- matlab动态图最新存储文件,MATLAB 动图绘制、保存
- C#foreach循环的优点
- 网页设计中色彩的应用
- 钓鱼网站 (搬运自common craft )
- matconvnet编译
- python爬duitang的摄影类图片
- user模块功能完成crud-王荣荣如此唯美
- ES:ES支持的数据类型
- 黑马程序员-JS基础-移动端网页特效
- 虚拟天文台主节点成功上云
- origin绘图软件2021 2022-origin中文版下载安装-origin功能使用
- 总谐波失真80_如何将总谐波失真(THD)控制着10%以下? - 全文
- 02_Windows和VMware下的Linux共享文件的实现
- MATLAB绘制散点图——plot
热门文章
- 所有计算机的字数都是8位,计算机(全部笔记).doc
- android 观察者更新ui,android通过观察者模式实现更新UI
- python如何复制一个变量_Python中变量、赋值、浅拷贝、深拷贝
- docker hub 代理_MAC版 的最新Docker 2.2版本配置国内代理的解决办法
- 投影元素直接隔离_Angular ngcontent 内容投影
- 不同sheet 选择若干条件_干货 | 不同加工条件下如何正确选择铣刀
- 2021高考一诊成绩查询,双流棠湖中学高2021届成都市“一诊”成绩已揭晓
- 计算机二级access选择题知识点总结,全国计算机二级Access考试重点题型汇总(选择题).doc...
- c语言判断一个点在长方体内部_21个入门练手项目,让你轻松玩转C语言
- python项目部署到url_项目上线部署