【Python】sorted排序list

sorted語法

sorted(iterable, key=None, reverse=False)
參數說明:

 - iterable -- 可迭代對象。 
 - key --主要是用來進行比較的元素,只有一個參數,具體的函數的參數就是取自於可迭代對象中,指定可迭代對象中的一個元素來進行排序。 
 - reverse -- 排序規則,reverse = True 降序 , reverse = False 升序(默認)。

返回:
 - 一個新list對象  

①按一種規則排序list

data = [('c', 3, 'Apple'), ('d', 1, 'Cat'), ('a', 2, 'Banana')]
# 根據字母升序
print(sorted(data, key=lambda x: x[0], reverse=False))  # <class 'list'>
# 根據數字升序
print(sorted(data, key=lambda x: x[1], reverse=False))  # <class 'list'>
# 根據單詞升序
print(sorted(data, key=lambda x: x[2], reverse=False))  # <class 'list'>

[('a', 2, 'Banana'), ('c', 3, 'Apple'), ('d', 1, 'Cat')]
[('d', 1, 'Cat'), ('a', 2, 'Banana'), ('c', 3, 'Apple')]
[('c', 3, 'Apple'), ('a', 2, 'Banana'), ('d', 1, 'Cat')]

②按多種規則排序list

data = [('c', 3, 'Apple'), ('c', 5, 'Banana'), ('c', 5, 'Apple'), ('d', 1, 'Cat'), ('a', 2, 'Banana')]
# 根據字母升序,相同則按數組降序
print(sorted(data, key=lambda x: (x[0], -x[1]), reverse=False))  # <class 'list'>
# 根據字母升序,相同則按數組降序,相同則按字符串升序
print(sorted(data, key=lambda x: (x[0], -x[1], x[2]), reverse=False))  # <class 'list'>

[('a', 2, 'Banana'), ('c', 5, 'Banana'), ('c', 5, 'Apple'), ('c', 3, 'Apple'), ('d', 1, 'Cat')]
[('a', 2, 'Banana'), ('c', 5, 'Apple'), ('c', 5, 'Banana'), ('c', 3, 'Apple'), ('d', 1, 'Cat')]

sorted傳送門

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章