本文摘自php中文网,作者Guanhui,侵删。

我们知道Python的内置dictionary数据类型是无序的,通过key来获取对应的value。可是有时我们需要对dictionary中 的item进行排序输出,可能根据key,也可能根据value来排。到底有多少种方法可以实现对dictionary的内容进行排序输出呢?下面摘取了 一些精彩的解决办法。
python对容器内数据的排序有两种,一种是容器自己的sort函数,一种是内建的sorted函数。
sort函数和sorted函数唯一的不同是,sort是在容器内(in-place)排序,sorted生成一个新的排好序的容器。
1 按照Key值排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | def sortedDictValues1(adict):
items = adict.items()
items.sort()
return [value for key, value in items]
def sortedDictValues2(adict):
keys = adict.keys()
keys.sort()
return [ dict [key] for key in keys]
def sortedDictValues3(adict):
keys = adict.keys()
keys.sort()
return map (adict.get, keys)
[(k,di[k]) for k in sorted (di.keys())]
print sorted (dict1.items(), key = lambda d: d[ 0 ])
|
2 按照value值排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 排序:
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())]
sorted (d.items(), lambda x, y: cmp (x[ 1 ], y[ 1 ])), 或反序:
sorted (d.items(), lambda x, y: cmp (x[ 1 ], y[ 1 ]), reverse = True )
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处理csv文件实例详解
Python实现超简单的视频对象提取功能
Python多线程的优点是什么?六大优点助你了解多线程
Python如何安装urllib2库
Python中next和send的用法介绍(代码)
Python怎么垂直输出
pip 只能安装Python库吗
Python操作mysql模拟银行转账操作的简单实例
Python如何创建指定范围的数字列表?(代码示例)
安装Python时没有scripts文件夹如何处理
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » 对Python的字典进行排序