Python3_关于列表排序

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

 

posted @ 2020-02-17 14:03  lemmon_water  阅读(1115)  评论(0)    收藏  举报