[轉載] python的sorted函式對字典按key排序和按value排序
阿新 • • 發佈:2018-12-06
1.sorted函式按key值對字典排序
先來基本介紹一下sorted函式,sorted(iterable,key,reverse),sorted一共有iterable,key,reverse這三個引數。
其中iterable表示可以迭代的物件,例如可以是 dict.items()、dict.keys()等,key是一個函式,用來選取參與比較的元素,reverse則是用來指定排序是倒序還是順 序,reverse=true則是倒序,reverse=false時則是順序,預設時reverse=false。
要按key值對字典排序,則可以使用如下語句:
直接使用sorted(d.keys())就能按key值對字典排序,這裡是按照順序對key值排序的,如果想按照倒序排序的話,則只要將reverse置為true即可。
2.sorted函式按value值對字典排序
要對字典的value排序則需要用到key引數,在這裡主要提供一種使用lambda表示式的方法,如下:
這裡的d.items()實際上是將d轉換為可迭代物件,迭代物件的元素為 (‘lilee’,25)、(‘wangyan’,21)、(‘liqun’,32)、(‘lidaming’,19),items()方法將字典的元素 轉化為了元組,而這裡key引數對應的lambda表示式的意思則是選取元組中的第二個元素作為比較引數(如果寫作key=lambda item:item[0]的話則是選取第一個元素作為比較物件,也就是key值作為比較物件。lambda x:y中x表示輸出引數,y表示lambda 函式的返回值),所以採用這種方法可以對字典的value進行排序。注意排序後的返回值是一個list,而原字典中的名值對被轉換為了list中的元組。