案例
某班英语成绩以字典的形式存储为:
{'LiLei':79, 'Jim':88, 'Lucy':92...}
,根据程序高低,计算学生排名。
解析
(1)利用zip将字典数据转化为元组
(2)传递sorted函数的key参数
代码
from random import randint
d = {x: randint(60, 100) for x in 'xyzabc'} # 指定key值,随机value值
print(d)
print(sorted(d)) # 只是对key进行排序,value已经不存在: ['a', 'b', 'c', 'x', 'y', 'z']
print(d) # d仍不变
'''
利用元组进行比较
(97,'a') > (69, 'b')
'''
# zip函数-------------------------------------
print(d.keys(), d.values(), sep="\n===============\n")
# python2版本中,考虑存储空间的优化,可以使用 iterkeys、itervalues 这样做:
# print(d.iterkeys(), d.itervalues(), sep="\n===============\n")
print(sorted(zip(d.values(), d.keys())))
# sorted key--------------------------------------
print(d.items())
print(sorted(d.items(), key=lambda x: x[1]))