对字典排序
比如学生成绩
{‘Lilei’: 63, ‘wang’: 78, ‘hanmeimei’: 90}
根据学生成绩计算排名
一般情况首选sorted()函数或者sort方法
第一种方法:用zip将字典转化成元组
d = {k:randint(60,100) for k in ('abcxyz') }
#{'a':79, 'c':78, 'b':93, 'y':95, 'x':77, 'z':93}
#当字典很大时d.itervalues()比直接使用d.values() 开销小
d = zip(d.itervalues(), d.iterkeys()).sort()
#[(77, 'x'),(78, 'c'),(79,'a'),(93,'b'),(93,'z'),(95,'y')]
第二种方法:传递sorted函数的key参数
#sorted(iteable, cmp=None, key=None, reverse=False)
sorted(d.items(), key=lambda x: x[1])
#[(77, 'x'),(78, 'c'),(79,'a'),(93,'b'),(93,'z'),(95,'y')]