python sort dict 總結


python中的dict是不能排序的,只有對dict的representation進行排序,例如list或者tuple
排序肯定會用到sorted函數,那么我們就來講一下sorted函數。

sorted

  • sorted(iterable,key,reverse)

iterable:表示可迭代的對象,例如dict.keys(), dict.items()
key:是一個函數,用來選擇參與排序的元素
reverse:默認為False,從小到大排序,reverse=True,表示從大到小排序

按 key 排序

import operator
x = {1:2, 5:6, 3:4}
sorted_x = sorted(x.items(), key=operator.itemgetter(0))
# sorted_x = sorted(x.items(), key=operator.itemgetter(0), reverse=True)

itemgetter(0)表示取每項的第一個值,也就是鍵,來參與排序,默認是從小到大排序
結果 [(1, 2), (3, 4), (5, 6)]

按 value 排序

import operator
x = {1:2, 5:6, 3:4}
sorted_x = sorted(x.items(), key=operator.itemgetter(1))

itemgetter(1)表示取每項的值來排序
結果 [(1, 2), (3, 4), (5, 6)]

按 key 排序

def sortedDictValues1(adict): 
	items = adict.items() 
	items.sort() 
	return [value for key, value in items] 
def sortedDictValues2(adict): 
	keys = adict.keys() 
	keys.sort() 
	return [dict[key] for key in keys] 
def sortedDictValues3(adict): 
	keys = adict.keys() 
	keys.sort() 
	return map(adict.get, keys) 
#一行語句搞定: 
[(k,di[k]) for k in sorted(di.keys())] 

按 value 排序

#還是一行搞定: 
[ v for v in sorted(di.values())] 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM