日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:怎么對python的字典進行排序

我們知道Python的內(nèi)置DICTionary數(shù)據(jù)類型是無序的,通過key來獲取對應的value??墒怯袝r我們需要對dictionary中 的item進行排序輸出,可能根據(jù)key,也可能根據(jù)value來排。到底有多少種方法可以實現(xiàn)對dictionary的內(nèi)容進行排序輸出呢?下面摘取了 一些精彩的解決辦法。

python對容器內(nèi)數(shù)據(jù)的排序有兩種,一種是容器自己的sort函數(shù),一種是內(nèi)建的sorted函數(shù)。

sort函數(shù)和sorted函數(shù)唯一的不同是,sort是在容器內(nèi)(in-place)排序,sorted生成一個新的排好序的容器。

1 按照Key值排序

#最簡單的方法,這個是按照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值排序,據(jù)說更快。。。而且當key為tuple的時候照樣適用 
def sortedDictValues3(adict): 
keys = adict.keys() 
keys.sort() 
return map(adict.get, keys) 

#一行語句搞定: 
[(k,di[k]) for k in sorted(di.keys())] 

#用sorted函數(shù)的key參數(shù)(func)排序: 
#按照key進行排序 
print sorted(dict1.items(), key=lambda d: d[0])

2 按照value值排序

#來一個根據(jù)value排序的,先把item的key和value交換位置放入一個list中,再根據(jù)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函數(shù)的key參數(shù)(func)排序: # 按照value進行排序 
print sorted(dict1.items(), key=lambda d: d[1])

網(wǎng)站欄目:創(chuàng)新互聯(lián)Python教程:怎么對python的字典進行排序
URL地址:http://m.5511xx.com/article/copiigj.html