Python sorted 和 sort() 的区别
今天遇到了這兩個有關于排序的函數,一個是 sorted() 一個是 sort()
一、特別說明以下3條:
1.sort() 函數只適用于列表排序,而 sorted() 函數適用于任意可以迭代的對象排序,如:列表,元組
2.sort() 函數排序會改變原有的待排序列表,sorted() 函數不會改變原有的待排序序列,而是返回一個新的序列
# 例一 a = [3, 6, 7, 8, 5] b = sorted(a) print(a) print(b)結果如下:
[3, 6, 7, 8, 5] [3, 5, 6, 7, 8] # 例二 a = [3, 6, 7, 8, 5] a.sort() print(a)結果如下:
[3, 5, 6, 7, 8]3.在使用列表進行排序時,需要考慮是否需要保存原列表,如果無需保存原列表,則優先使用sort() 節省內存空間,提高效率
二、sorted 語法:
sorted(iterable, key=None, reverse=False)
參數說明:
-
iterable – 可迭代對象。
-
key – 主要是用來進行比較的元素,只有一個參數,具體的函數的參數就是取自于可迭代對象中,指定可迭代對象中的一個元素來進行排序。
-
reverse – 排序規則,reverse = True 降序 , reverse = False 升序(默認)。
練習題:
假設我們用一組tuple表示學生名字和成績: L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)] 用 sorted() 對上述列表:(1)按名字排序: (2)按成績從高到低排序: >>> print('sorted_by_name:', sorted(L, key=lambda x: x[0])) sorted_by_name: [('Adam', 92), ('Bart', 66), ('Bob', 75), ('Lisa', 88)]>>>print('sorted_by_score:', sorted(L, key=lambda x: x[1], reverse=True)) sorted_by_score: [('Adam', 92), ('Lisa', 88), ('Bob', 75), ('Bart', 66)]三、sort() 語法
list.sort(cmp=None, key=None, reverse=False)
參數說明:
-
cmp – 可選參數, 如果指定了該參數會使用該參數的方法進行排序。
-
key – 主要是用來進行比較的元素,只有一個參數,具體的函數的參數就是取自于可迭代對象中,指定可迭代對象中的一個元素來進行排序。
-
reverse – 排序規則,reverse = True 降序, reverse = False 升序(默認)。
實例1:
# 列表 vowels = ['e', 'a', 'u', 'o', 'i']# 降序 vowels.sort(reverse=True)# 輸出結果 print('降序輸出:') print( vowels )以上實例輸出結果如下:
降序輸出: ['u', 'o', 'i', 'e', 'a']參考博主:https://www.cnblogs.com/liangmingshen/p/10061552.html
總結
以上是生活随笔為你收集整理的Python sorted 和 sort() 的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java instanceof 关键字【
- 下一篇: 【Python】青少年蓝桥杯_每日一题_