python的dict如何排序

2022-02-19 02:28:05 字數 1475 閱讀 7147

python的內建dictionary資料型別是無序的,通過key來獲取對應的value。可是有時我們需要對dictionary中 的item進行排序輸出,可能根據key,也可能根據value來排

#最簡單的方法,這個是按照key值排序: 

def

sorteddictvalues1(adict):

items =adict.items()

items.sort()

return [value for key, value in items]

#又乙個按照key值排序,貌似比上乙個速度要快點 

def

sorteddictvalues2(adict):

keys =adict.keys()

keys.sort()

return [dict[key] for key in keys]

#還是按key值排序,據說更快。。。而且當key為tuple的時候照樣適用 

def

sorteddictvalues3(adict):

keys =adict.keys()

keys.sort()

return map(adict.get, keys)

#一行語句搞定: 

[(k,di[k]) for k in sorted(di.keys())]

#來乙個根據value排序的,先把item的key和value交換位置放入乙個list中,再根據list每個元素的第乙個值,即原來的value值,排序: 

def

sort_by_value(d):

items=d.items()

backitems=[[v[1],v[0]] for v in

items]

backitems.sort()

return [ backitems[i][1] for i in range(0,len(backitems))]

#還是一行搞定: 

[ v for v in sorted(di.values())]

#用lambda表示式來排序,更靈活: 

sorted(d.items(), lambda x, y: cmp(x[1], y[1])), 或反序: 

sorted(d.items(),

lambda x, y: cmp(x[1], y[1]), reverse=true)

#用sorted函式的key= 引數排序: 

# 按照key進行排序 

print sorted(dict1.items(), key=lambda d: d[0])

# 按照value進行排序 

print sorted(dict1.items(), key=lambda d: d[1])

python中如何對dict物件進行排序

有程式 mydict for key in sorted mydict.iterkeys print s s key,mydict key 輸出結果為 alan 2 bob 1 carl 40 danny 3 使用key來進行dict的排序 keylist mydict.keys keylist.s...

Python 對dict 的 keys 排序

dict的key值存放特性是散序的,即它的實際順序並不是並不是定義時你寫的那樣。可以通過sorted進行簡單的排序。例子如下 card combo map if name main print card combo map m sorted card combo map.keys for k in ...

python中dict和list排序

1 list排序 列表的排序是python內建功能,自身含有sort方法 如 s 2,1,3,0 s.sort 0,1,2,3 2 dict排序 對字典的排序,因為每乙個項包括乙個鍵值對,所以要選擇可比較的鍵或值進行排序 sorted iterable cmp key reverse cmp和key...