91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中sort()與sorted()的區別是什么

發布時間:2021-01-22 16:16:11 來源:億速云 閱讀:170 作者:Leah 欄目:開發技術

python中sort()與sorted()的區別是什么?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

python 中sorted與sort有什么區別

sort(cmp=None, key=None, reverse=False)
sorted(iterable, cmp=None, key=None, reverse=False)
sort是容器的函數,用List的成員函數sort進行排序
sorted是Python的內建函數相同的參數,用built-in函數sorted進行排序
sorted(iterable,key=None,reverse=False),返回新的列表,對所有可迭代的對象均有效
sort(key=None,reverse=False) 就地改變列表 reverse:True反序;False 正序

例如:

>>> a=[1,3,5,2,9,4,7,8,6,0]
>>> a.sort()
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a=[1,3,5,2,9,4,7,8,6,0]
>>> sorted(a)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a
[1, 3, 5, 2, 9, 4, 7, 8, 6, 0]

以下是詳細說明

Python list內置sort()方法用來排序,也可以用python內置的全局sorted()方法來對可迭代的序列排序生成新的序列。

sorted(iterable,key=None,reverse=False),返回新的列表,對所有可迭代的對象均有效

sort(key=None,reverse=False) 就地改變列表 reverse:True反序;False 正序

sort是容器的函數:sort(cmp=None, key=None, reverse=False)

sorted是python的內建函數:sorted(iterable, cmp=None, key=None, reverse=False)

參數解析:

cmp:比較函數,比較什么參數由key決定。例如:cmp(e1, e2) 是具有兩個參數的比較函數,返回值:負數(e1 < e2);0(e1 == e2);正數( e1 > e2)。
key:用列表元素的某個屬性或函數作為關鍵字。
reverse:排序規則,可以選擇True或者False。
sorted多一個參數iterable:待排序的可迭代類型的容器 

示例1:

>>> a=[1,2,5,3,9,4,6,8,7,0,12]
>>> a.sort()
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12]


>>> a=[1,2,5,3,9,4,6,8,7,0,12]
>>> sorted(a)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12]
>>> a
[1, 2, 5, 3, 9, 4, 6, 8, 7, 0, 12]

區別:

對于一個無序的列表a,調用a.sort(),對a進行排序后返回a,sort()函數修改待排序的列表內容。
而對于同樣一個無序的列表a,調用sorted(a),對a進行排序后返回一個新的列表,而對a不產生影響。

示例2:

假設用元組保存每一個學生的信息,包括學號,姓名,年齡。用列表保存所有學生的信息。

>>> list1=[(8, 'Logan', 20), (2, 'Mike', 22), (5, 'Lucy', 19)]
>>> list1.sort()
>>> list1
[(2, 'Mike', 22), (5, 'Lucy', 19), (8, 'Logan', 20)]


>>> list1=[(8, 'Logan', 20), (2, 'Mike', 22), (5, 'Lucy', 19)]
>>> sorted(list1)
[(2, 'Mike', 22), (5, 'Lucy', 19), (8, 'Logan', 20)]
>>> list1
[(8, 'Logan', 20), (2, 'Mike', 22), (5, 'Lucy', 19)]

小結:由示例可以看出,當列表由list(或者tuple)組成時,默認情況下,sort和sorted都會根據list[0](或者tuple[0])作為排序的key,進行排序。

以上都是默認的排序方式,我們可以編寫代碼控制兩個函數的排序行為。主要有三種方式:基于key函數;基于cmp函數和基于reverse函數

1)基于key函數排序

>>> list1=[(8, 'Logan', 20), (2, 'Mike', 22), (5, 'Lucy', 19)]
>>> list1.sort(key=lambda x:x[2])
>>> list1
[(5, 'Lucy', 19), (8, 'Logan', 20), (2, 'Mike', 22)]


>>> list1=[(8, 'Logan', 20), (2, 'Mike', 22), (5, 'Lucy', 19)]
>>> sorted(list1, key=lambda x:x[2])
[(5, 'Lucy', 19), (8, 'Logan', 20), (2, 'Mike', 22)]
>>> list1
[(8, 'Logan', 20), (2, 'Mike', 22), (5, 'Lucy', 19)]

2)基于cmp函數

>>> list1=[(8, 'Zogan', 20), (2, 'Mike', 22), (5, 'Lucy', 19)]
>>> list1.sort(cmp=lambda x,y:cmp(x[1],y[1]))
>>> list1
[(5, 'Lucy', 19), (2, 'Mike', 22), (8, 'Zogan', 20)]


>>> list1=[(8, 'Zogan', 20), (2, 'Mike', 22), (5, 'Lucy', 19)]
>>> sorted(list1, cmp=lambda x,y:cmp(x[1],y[1]))
[(5, 'Lucy', 19), (2, 'Mike', 22), (8, 'Zogan', 20)]
>>> list1
[(8, 'Zogan', 20), (2, 'Mike', 22), (5, 'Lucy', 19)]

3)基于reverse函數

>>> a=[1,2,5,3,9,4,6,8,7,0,12]
>>> a.sort(reverse=False)
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12]
 

>>> a=[1,2,5,3,9,4,6,8,7,0,12]
>>> a.sort(reverse=True)
>>> a
[12, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> a.sort(reverse=True)

關于python中sort()與sorted()的區別是什么問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

荥阳市| 白河县| 柯坪县| 苏尼特左旗| 出国| 鹤山市| 池州市| 泰顺县| 禄劝| 新乡县| 错那县| 芦溪县| 毕节市| 江阴市| 河源市| 屏东县| 陵川县| 长泰县| 堆龙德庆县| 九龙县| 商洛市| 房山区| 南涧| 紫阳县| 革吉县| 正宁县| 东乡| 古蔺县| 陆良县| 南澳县| 南陵县| 鄂伦春自治旗| 平顶山市| 鄯善县| 合江县| 安龙县| 双鸭山市| 北票市| 商水县| 家居| 罗源县|