题目:对字典进行有序排序,分别根据字典的key或字典的value
dis1 = {'banana':3,'pic':2,'apple':4,'orange':5} #方法一: print(sorted(dis1.items(),key = lambda x:x[1])) print(sorted(dis1.items(),key = lambda x:x[0])) #方法二: operator模块 import operator print(sorted(dis1.items(),key = operator.itemgetter(1))) print(sorted(dis1.items(),key = operator.itemgetter(0))) #方法三:xip方法 print('-----zip方法:zip函数默认会对第一个元素进行排序的-----') f = zip(dis1.keys(),dis1.values()) #zip 之后,zip函数默认会对第一个元素进行排序的 g = zip(dis1.values(),dis1.keys()) print(sorted(f)) print(sorted(g))
#方法四:
import collections
kd = collections.OrderedDict(sorted(dis1.items(),key = lambda x:x[1]))
print(kd)
vd = collections.OrderedDict(sorted(dis1.items(),key = lambda x:x[0]))
print(vd)
执行结果:
[('pic', 2), ('banana', 3), ('apple', 4), ('orange', 5)] [('apple', 4), ('banana', 3), ('orange', 5), ('pic', 2)] [('pic', 2), ('banana', 3), ('apple', 4), ('orange', 5)] [('apple', 4), ('banana', 3), ('orange', 5), ('pic', 2)] -----zip方法:zip函数默认会对第一个元素进行排序的----- [('apple', 4), ('banana', 3), ('orange', 5), ('pic', 2)] [(2, 'pic'), (3, 'banana'), (4, 'apple'), (5, 'orange')] OrderedDict([('pic', 2), ('banana', 3), ('apple', 4), ('orange', 5)]) OrderedDict([('apple', 4), ('banana', 3), ('orange', 5), ('pic', 2)])