python(字典排序)

案例


某班英语成绩以字典的形式存储为:{'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]))

你可能感兴趣的:(python(字典排序))