Last updated 2 years ago
排序有分兩種
sorted() :回傳排序好的陣列,原陣列不改變
sorted()
arr.sort() :直接針對原陣列排序好,原陣列的順序會不存在
arr.sort()
兩者的 API 都差不多
第一種方法,使用 reverse
第二種方法,使用 Key
這種排序方法常用在跟區間相關的題目:
按照 value 排序
a = [1, 3, 2, 5, 4] a.sort() # [1, 2, 3, 4, 5]
a = [1, 3, 2, 5, 4] a.sort(reverse=True) # [5, 4, 3, 2, 1]
a = [1, 3, 2, 5, 4] a.sort(key=lambda x: (-x)) # [5, 4, 3, 2, 1]
a = [[2, 3], [1, 4], [1, 2], [1, 5], [4, 6]] a.sort() # [[1, 2], [1, 4], [1, 5], [2, 3], [4, 6]]
a = [[2, 3], [1, 4], [1, 2], [1, 5], [4, 6]] a.sort(key=lambda x: (x[0],-x[1])) # [[1, 5], [1, 4], [1, 2], [2, 3], [4, 6]]
words = ['apple', 'apple', 'orange', 'banana'] words.sort()
table = {1: 1, 3: 3, 4: 4, 2: 2} for key in sorted(table.keys()): print(table[key])
table = {1: 1, 3: 3, 4: 4, 2: 2} for key, val in sorted(table.items(), key=lambda kv: (kv[1], kv[0])): print('table[{}] = {}'.format(key, val))