导语:
本文主要介绍了关于怎么对python的字典进行排序的相关知识,包括python字典遍历,以及python字典比较大小这些编程知识,希望对大家有参考作用。
我们知道Python内置的字典数据类型是无序的,通过key获取对应的值。但是有时候我们需要对字典中的item进行排序输出,可能是按照key或者value排序。字典内容的排序输出有多少种方式?下面摘录了一些出色的解决方案。
python对容器中的数据进行排序有两种,一种是容器本身的sort函数,一种是内置的sorted函数。
sort 函数和 sorted 函数的唯一区别是 sort 是在容器中就地排序,而 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中子进程的使用09/05
- ♥ python是否支持函数重载10/24
- ♥ json和python字典的区别10/23
- ♥ 如何快速拼接 Python 字符串11/16
- ♥ Python知识手册V1.0!!!出来了!!!01/01
- ♥ Python缩进是空格还是制表符11/01
内容反馈