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

沒有留言:

張貼留言

[Git 常見問題] error: The following untracked working tree files would be overwritten by merge

  Source From  Here 方案1: // x -----删除忽略文件已经对 git 来说不识别的文件 // d -----删除未被添加到 git 的路径中的文件 // f -----强制运行 #   git clean -d -fx 方案2: 今天在服务器上  gi...