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傳送門