Python3 sorted() 函數
描述
sorted() 函數對所有可迭代的對象進行排序操作。
sort 與 sorted 區別:
sort 是應用在 list 上的方法,sorted 可以對所有可迭代的對象進行排序操作。
list 的 sort 方法返回的是對已經存在的列表進行操作,而內建函數 sorted 方法返回的是一個新的 list,而不是在原來的基礎上進行的操作。
語法
sorted 語法:
sorted(iterable, key=None, reverse=False)
參數說明:
- iterable -- 可迭代對象。
- key -- 主要是用來進行比較的元素,只有一個參數,具體的函數的參數就是取自於可迭代對象中,指定可迭代對象中的一個元素來進行排序。
- reverse -- 排序規則,reverse = True 降序 , reverse = False 昇冪(默認)。
返回值
返回重新排序的列表。
實例
以下實例展示了 sorted 的最簡單的使用方法:
>>>sorted([5, 2, 3, 1, 4])
[1, 2, 3, 4, 5] # 默認為昇冪
你也可以使用 list 的 list.sort() 方法。這個方法會修改原始的 list(返回值為None)。通常這個方法不如sorted()方便-如果你不需要原始的 list,list.sort()方法效率會稍微高一些。
>>>a=[5,2,3,1,4]
>>> a.sort()
>>> a
[1,2,3,4,5]
另一個區別在於list.sort() 方法只為 list 定義。而 sorted() 函數可以接收任何的 iterable。
>>>sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})
[1, 2, 3, 4, 5]
利用key進行倒序排序
>>>example_list = [5, 0, 6, 1, 2, 7, 3, 4]
>>> result_list = sorted(example_list, key=lambda x: x*-1)
>>> print(result_list)
[7, 6, 5, 4, 3, 2, 1, 0]
>>>
要進行反向排序,也通過傳入第三個參數 reverse=True:
>>>example_list = [5, 0, 6, 1, 2, 7, 3, 4]
>>> sorted(example_list, reverse=True)
[7, 6, 5, 4, 3, 2, 1, 0]