python学习笔记——根据字典中的值的大小进行排序


sorted的常见用法:

sorted([4,7,2,9,1])
Out[68]: 
[1, 2, 4, 7, 9]

1 / 使用zip将字典数据转化成元组后排序

{ x:randint(60,100) for x in 'xyzabc'}
Out[69]: 
{'a': 75, 'b': 66, 'c': 93, 'x': 73, 'y': 71, 'z': 72}
d = { x:randint(60,100) for x in 'xyzabc'}
sorted(d)
Out[71]: 
['a', 'b', 'c', 'x', 'y', 'z']
#sorted默认对字典的键排序,并丢弃值
##使用zip函数将字典数据转化成元组
d.keys()
Out[74]: 
dict_keys(['x', 'y', 'z', 'a', 'b', 'c'])
d.values()
Out[75]: 
dict_values([75, 71, 89, 90, 69, 98])

sorted(zip(d.values(),d.keys()))
Out[79]: 
[(69, 'b'), (71, 'y'), (75, 'x'), (89, 'z'), (90, 'a'), (98, 'c')]
2 / 传递sorted函数的key参数

lambda匿名函数是指拿index[1]的元素作为sorted的key,然后sorted依据这个key进行排序

d.items()
Out[81]: 
dict_items([('x', 75), ('y', 71), ('z', 89), ('a', 90), ('b', 69), ('c', 98)])
sorted(d.items(),key = lambda x : x[1])
Out[82]: 
[('b', 69), ('y', 71), ('x', 75), ('z', 89), ('a', 90), ('c', 98)]



你可能感兴趣的:(Python)