在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]