列表排序有兩種方式,一種是列表自帶的方式sort,一種是內建函數sorted。復雜的數據類型可通過指定key參數進行排序。
由字典構成的列表,根據字典元素中的age字段進行排序:
1 items=[{'name':'Tom','age':10}, 2 {'name':'jack','age':20}, 3 {'name':'bart','age':12}, 4 {'name':'cater','age':24}] 5 items.sort(key=lambda item:item.get("age")) 6 print(items)
1 [{'name': 'Tom', 'age': 10}, {'name': 'bart', 'age': 12}, {'name': 'jack', 'age': 20}, {'name': 'cater', 'age': 24}]
列表有 sort方法,用於對原列表進行重新排序,指定 key 參數,key 是匿名函數,item 是列表中的字典元素,我們根據字典中的
age進行排序,默認是按升序排列,指定 reverse=True 按降序排列
items.sort(key=lambda item:item.get("age"),reverse=True)
如果不希望改變原列表,而是生成一個新的有序列表對象,那么可以內置函數 sorted ,該函數返回新列表
items=[{'name':'Tom','age':10}, {'name':'jack','age':20}, {'name':'bart','age':12}, {'name':'cater','age':24}] #items.sort(key=lambda item:item.get("age"),reverse=True) new_items=sorted(items,key=lambda item:item.get("age"),reverse=True) print(items) print(new_items)
[{'name': 'Tom', 'age': 10}, {'name': 'jack', 'age': 20}, {'name': 'bart', 'age': 12}, {'name': 'cater', 'age': 24}] [{'name': 'cater', 'age': 24}, {'name': 'jack', 'age': 20}, {'name': 'bart', 'age': 12}, {'name': 'Tom', 'age': 10}]