程式扎記: [ Python 範例代碼 ] Sorting directory into item key list according to the item value

標籤

2013年9月9日 星期一

[ Python 範例代碼 ] Sorting directory into item key list according to the item value

Preface: 
考慮你有一個 directory aset 如下: 
>>> aset = {}
>>> aset['a']=5
>>> aset['b']=2
>>> aset['c']=4
>>> aset['d']=1
>>> aset['e']=7
>>> aset['f']=6
>>> aset['g']=3
>>> aset['h']=2
>>> aset
{'a': 5, 'c': 4, 'b': 2, 'e': 7, 'd': 1, 'g': 3, 'f': 6, 'h': 2}

你希望根據每個 item 的 value 值進行 sorting, 並將 sorting 完過後的 item 的 key 值 存成一個 list. 則可以參考下面範例代碼. 

Sample Code: 
在下面代碼中, 同時結合使用 for comprehension 與 lambda 語法完成上面需求: 
>>> orderedItems = [v[0] for v in sorted(aset.items(), key=lambda p:p[1], reverse=True)]
>>> orderedItems
['e', 'f', 'a', 'c', 'g', 'b', 'h', 'd'] # 因為 'e' 的 value=7 為最大, 故排在最前面; 反之因為 'd' 的 value=1 最小, 故排在最後面.

Supplement: 
Python built-in function : sorted

沒有留言:

張貼留言

網誌存檔

關於我自己

我的相片
Where there is a will, there is a way!