我们知道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 排序相关推荐

  1. python的sorted排序具体解释

    排序.在编程中常常遇到的算法.我也在几篇文章中介绍了一些关于排序的算法. 有的高级语言内置了一些排序函数.本文讲述Python在这方面的工作.供使用python的程序猿们參考,也让没有使用python ...

  2. Python中sorted()排序与字母大小写的问题

    今天我在练习python时,对字典里的键用sorted排序时发现并没有按照预期排序 研究后发现字母大小写会影响排序 首先创建一个字典,键里面的首字母有大写有小写 favorite_digit = {' ...

  3. python dict sorted

    1. 准备知识: 在python里,字典dictionary是内置的数据类型,是个无序的存储结构,每一元素是key-value对: 如:dict = {'username':'password','d ...

  4. Python 之 sorted()排序详解 适用于任意可迭代对象比如列表,字典等

    详细解释一下函数sorted的具体用法: 对字典: 1 >>> a = {3: '三', 5: '五', 8: '八', 1: '一'} 2 >>> b = sor ...

  5. python字母大小写排序_Python中sorted()排序与字母大小写的问题

    今天我在练习python时,对字典里的键用sorted排序时发现并没有按照预期排序 研究后发现字母大小写会影响排序 首先创建一个字典,键里面的首字母有大写有小写 favorite_digit = { ...

  6. python dict排序_python 字典(dict)按键和值排序

    python 字典(dict)的特点就是无序的,按照键(key)来提取相应值(value),如果我们需要字典按值排序的话,那可以用下面的方法来进行: 1 下面的是按照value的值从大到小的顺序来排序 ...

  7. python中用def实现自动排序_Python sorted排序方法如何实现

    在给列表排序时,sorted非常好用,语法如下: sorted(iterable[, cmp[,key[,reverse]]]) sorted定义如下: sorted( iterable[, cmp[ ...

  8. python不用sort排序_Python排序之sortamp;sorted

    1 首先,Python中sort与sorted的区别: python中列表的内置函数sort()可以对列表中的元素进行排序,sort()函数是内置函数,会改变当前对象: 而全局性的sorted()函数 ...

  9. python高阶函数——sorted排序算法

    python高阶函数--sorted排序算法 python 内置的sorted()函数可以对一个list进行排序: >>> sorted([8,3,8,11,-2]) [-2, 3, ...

最新文章

  1. 基于Spark ALS算法的个性化推荐
  2. 每日一博 - Review线程池
  3. memcached全面剖析--3.memcached的删除机制和发展方向
  4. BZOJ1439 : YY的问题
  5. [你必须知道的.NET]第三十一回,深入.NET 4.0之,从“新”展望
  6. 如何修改bt tracker服务器,bt tracker服务器
  7. matlab动态图最新存储文件,MATLAB 动图绘制、保存
  8. C#foreach循环的优点
  9. 网页设计中色彩的应用
  10. 钓鱼网站 (搬运自common craft )
  11. matconvnet编译
  12. python爬duitang的摄影类图片
  13. user模块功能完成crud-王荣荣如此唯美
  14. ES:ES支持的数据类型
  15. 黑马程序员-JS基础-移动端网页特效
  16. 虚拟天文台主节点成功上云
  17. origin绘图软件2021 2022-origin中文版下载安装-origin功能使用
  18. 总谐波失真80_如何将总谐波失真(THD)控制着10%以下? - 全文
  19. 02_Windows和VMware下的Linux共享文件的实现
  20. MATLAB绘制散点图——plot

热门文章

  1. 所有计算机的字数都是8位,计算机(全部笔记).doc
  2. android 观察者更新ui,android通过观察者模式实现更新UI
  3. python如何复制一个变量_Python中变量、赋值、浅拷贝、深拷贝
  4. docker hub 代理_MAC版 的最新Docker 2.2版本配置国内代理的解决办法
  5. 投影元素直接隔离_Angular ngcontent 内容投影
  6. 不同sheet 选择若干条件_干货 | 不同加工条件下如何正确选择铣刀
  7. 2021高考一诊成绩查询,双流棠湖中学高2021届成都市“一诊”成绩已揭晓
  8. 计算机二级access选择题知识点总结,全国计算机二级Access考试重点题型汇总(选择题).doc...
  9. c语言判断一个点在长方体内部_21个入门练手项目,让你轻松玩转C语言
  10. python项目部署到url_项目上线部署