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)]



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章