原型函數(shù):sorted(dict淋淀,value赦颇,reverse)
- dict:dict為比較函數(shù)
- value:為排序?qū)ο螅ㄟ@里指鍵或鍵值)
- reverse:注明升序還是降序,True--降序氏义、False--升序
注:排序后隐轩,字典順序未發(fā)生變化
如果“鍵值”對中值字典的某一特定鍵不存在,咋處理呢
eg:
>>>a = {'a':{'val':3}, 'b':{'val':4}, 'c':{'val':1}, 'd':{'val2':0}}
>>>dict=sorted(a.iteritems(),key=lambda d:d[1]['val'].reverse=True)
>>>dict
KeyError:'val'
>>>dict=sorted(a.iteritems(),keylambda d:d[1].get('val',0),reverse=True)
>>>dict
[('b', {'val': 4}), ('a', {'val': 3}), ('c', {'val': 1}), ('d', {'val2': 0})]
功能: 創(chuàng)建匿名函數(shù)
- 區(qū)別: 和def函數(shù)定義,以下兩點區(qū)別
1.lambda會創(chuàng)建一個函數(shù)對象,但不會把這個函數(shù)對象賦給一個標(biāo)識符;而def則會把函數(shù)對象賦值給一個變量
lambda它只是一個表達(dá)式起宽,而def則是一個語句
2.iteritems:
功能: iteritems()以迭代器對象返回字典鍵值對
區(qū)別: 和item相比:items以列表形式返回字典鍵值對
注釋: 在函數(shù)sorted(dic.iteritems(), key = lambda asd:asd[1])中洲胖,第一個參數(shù)傳給第二個參數(shù)“鍵-鍵值”,第二個參數(shù)取出其中的鍵([0])或鍵值(1])
參考:http://www.cnblogs.com/kaituorensheng/archive/2012/08/07/2627386.html