python的內建dictionary資料型別是無序的,通過key來獲取對應的value。可是有時我們需要對dictionary中 的item進行排序輸出,可能根據key,也可能根據value來排
#最簡單的方法,這個是按照key值排序:
defsorteddictvalues1(adict):
items =adict.items()
items.sort()
return [value for key, value in items]
#又乙個按照key值排序,貌似比上乙個速度要快點
defsorteddictvalues2(adict):
keys =adict.keys()
keys.sort()
return [dict[key] for key in keys]
#還是按key值排序,據說更快。。。而且當key為tuple的時候照樣適用
defsorteddictvalues3(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值,排序:
defsort_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...