如何在 Python 中透過鍵對字典進行排序?


Python 的標準發行版包含集合模組。其中定義了高效能容器資料型別。OrderedDict 是字典的一個子類,它會記住新增到字典物件中的項的順序。在對有序字典進行迭代時,項將按其鍵首次新增的順序返回。

>>> from collections import OrderedDict
>>> D = {5:'fff', 3:'ttt', 1:'ooo',4:'bbb', 2:'ddd'}
>>> OrderedDict(D.items())
 OrderedDict([(5, 'fff'), (3, 'ttt'), (1, 'ooo'), (4, 'bbb'), (2, 'ddd')])

我們還需要使用 sorted() 函式,該函式按指定順序對可迭代物件中的元素進行排序。該函式接受一個函式作為引數,該函式用作排序的鍵。由於我們打算按鍵對字典進行排序,因此我們將元組的第 0 個元素作為排序的鍵

>>> D = {5:'fff', 3:'ttt', 1:'ooo',4:'bbb', 2:'ddd'}
>>> OrderedDict(sorted(D.items(), key = lambda t: t[0]))
   OrderedDict([(1, 'ooo'), (2, 'ddd'), (3, 'ttt'), (4, 'bbb'), (5, 'fff')])

OrderedDict 物件可以被解析成一個常規的字典物件

>>> D1 = dict(OrderedDict(sorted(D.items(), key = lambda t: t[0])))
>>> D1
   {1: 'ooo', 2: 'ddd', 3: 'ttt', 4: 'bbb', 5: 'fff'}

更新時間: 2019 年 7 月 30 日

538 次瀏覽

開啟你的 職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.