在Python中对列表的排序有一个内置的方法 sort
list1 = [9,8,7,6,5]
list1.sort()
print(list1)
# [5, 6, 7, 8, 9]
注意: sort 是一个内建的list.sort() 方法,可以直接改变列表的内容.
升序降序
sort 是可以接受一个reverse参数,这个参数是一个布尔值用来标记是否降序排序
# 升序
list1 = [9,8,7,6,5]
list1.sort(reverse=False)
print(list1)
# [5, 6, 7, 8, 9]
# 降序
list1 = [9,8,7,6,5]
list1.sort(reverse=True)
print(list1)
# [9, 8, 7, 6, 5]
sort 是可以接受一个key参数,这个参数是可以用来控制根据那个参数来排序
numbers = [{"id" : 7}, {"id" : 5}, {"id" : 9}]
numbers.sort(key=lambda x:x.get("id"))
# [{"id" : 5}, {"id" : 7}, {"id" : 9}]
分组排序
numbers = [8, 3, 1, 2, 5, 7, 9, 8]
group = {5, 7, 2, 8}
def helper(x):
if x in group:
return (0, x)
return (1, x)
numbers.sort(key=helper)
print(numbers)
# [2, 5, 7, 8, 8, 1, 3, 9]