具體內容如下:
使用sorted將字典按照其value大小排序
>>> record = {'a':89, 'b':86, 'c':99, 'd':100}>>> sorted(record.items(), key=lambda x:x[1])[('b', 86), ('a', 89), ('c', 99), ('d', 100)]
sorted第一個參數要可迭代,可以為tuple, list
>>> items = [(1, 'B'), (1, 'A'), (2, 'A'), (0, 'B'), (0, 'a')]>>> sorted(items)[(0, 'B'), (0, 'a'), (1, 'A'), (1, 'B'), (2, 'A')]
為什么(0, 'B')在(0, 'a')前面?
因為ASCII碼中大寫字母排在在小寫字母前面,使用str.lower()方法改變其順序
>>> sorted(items, key=lambda x:(x[0], x[1].lower()))
[(0, 'a'), (0, 'B'), (1, 'A'), (1, 'B'), (2, 'A')]
以上內容是關于Python實現字典依據value排序的相關知識,希望對大家有所幫助!