列表排序有两种方式,一种是列表自带的方式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}]