Skip to content
Python:字典排序
📆2020-09-29 | 📂Python

有時候會需要依據dict value來排序,嗯,就是會有這種時候(´・_・`)


話說我看了官方文件才發現,從Python 3.6開始依據PEP 468將保留**kwargs的順序,所以現在dict也是有序的呢(插入元素的順序),而我開始學習Python的時候是3.5版。

假設有個dict長這樣:

python
my_friend = {
    'Mike':{'gender':'male', 'age':25}, 
    'Emily':{'gender':'female', 'age':23}, 
    'John':{'gender':'male', 'age':30}, 
    'Ted':{'gender':'male', 'age':26}, 
    'Alice':{'gender':'female', 'age':29}
}

如果想依據'age'來排序? 利用lambda將sort key指定為dict value中的某個值來排序dict.items():

python
>>> sort_my_friend = sorted(my_friend.items(), key=lambda x:x[1]['age'])
>>> sort_my_friend
[('Emily', {'gender': 'female', 'age': 23}), ('Mike', {'gender': 'male', 'age': 25}), ('Ted', {'gender': 'male', 'age': 26}), ('Alice', {'gender': 'female', 'age': 29}), ('John', {'gender': 'male', 'age': 30})]

Last updated: