最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python排序函數(shù)sort()與sorted()的區(qū)別

 更新時(shí)間:2018年09月18日 17:36:29   作者:故鄉(xiāng)月zyl  
這篇文章主要介紹了python排序函數(shù)sort()與sorted()的區(qū)別,需要的朋友可以參考下

python 中sorted與sort有什么區(qū)別

sort(cmp=None, key=None, reverse=False)
sorted(iterable, cmp=None, key=None, reverse=False)
sort是容器的函數(shù),用List的成員函數(shù)sort進(jìn)行排序
sorted是Python的內(nèi)建函數(shù)相同的參數(shù),用built-in函數(shù)sorted進(jìn)行排序
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]

以下是詳細(xì)說明

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

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

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

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

sorted是python的內(nèi)建函數(shù):sorted(iterable, cmp=None, key=None, reverse=False)

參數(shù)解析:

cmp:比較函數(shù),比較什么參數(shù)由key決定。例如:cmp(e1, e2) 是具有兩個參數(shù)的比較函數(shù),返回值:負(fù)數(shù)(e1 < e2);0(e1 == e2);正數(shù)( e1 > e2)。
key:用列表元素的某個屬性或函數(shù)作為關(guān)鍵字。
reverse:排序規(guī)則,可以選擇True或者False。
sorted多一個參數(shù)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]

區(qū)別:

對于一個無序的列表a,調(diào)用a.sort(),對a進(jìn)行排序后返回a,sort()函數(shù)修改待排序的列表內(nèi)容。
而對于同樣一個無序的列表a,調(diào)用sorted(a),對a進(jìn)行排序后返回一個新的列表,而對a不產(chǎn)生影響。

示例2:

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

>>> 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)]

小結(jié):由示例可以看出,當(dāng)列表由list(或者tuple)組成時(shí),默認(rèn)情況下,sort和sorted都會根據(jù)list[0](或者tuple[0])作為排序的key,進(jìn)行排序。

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

1)基于key函數(shù)排序

>>> 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函數(shù)

>>> 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函數(shù)

>>> 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)

小結(jié):reverse=False為升序排序;reverse=True為降序排序

相關(guān)文章

  • Python?報(bào)錯ImportError:?No?module?named?***的問題解決

    Python?報(bào)錯ImportError:?No?module?named?***的問題解決

    本文主要介紹了Python?報(bào)錯ImportError:?No?module?named?***,下面就來介紹一下該問題的解決,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-05-05
  • pandas?數(shù)據(jù)透視和逆透視的實(shí)現(xiàn)

    pandas?數(shù)據(jù)透視和逆透視的實(shí)現(xiàn)

    本文介紹了pandas?數(shù)據(jù)透視和逆透視的實(shí)現(xiàn),包含pivot()方法透視及pivot_table()方法逆透視,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • Pycharm5個非常有用的方法技巧

    Pycharm5個非常有用的方法技巧

    這篇文章主要介紹了Pycharm5個非常有用的方法技巧,PyCharm?是一款非常強(qiáng)大的編寫?python?代碼的工具。掌握一些小技巧能成倍的提升寫代碼的效率,本篇介紹幾個經(jīng)常使用的小技巧,需要的小伙伴可以參考一下
    2022-07-07
  • Python 爬蟲之超鏈接 url中含有中文出錯及解決辦法

    Python 爬蟲之超鏈接 url中含有中文出錯及解決辦法

    這篇文章主要介紹了Python 爬蟲之超鏈接 url中含有中文出錯及解決辦法的相關(guān)資料,出現(xiàn)UnicodeEncodeError: 'ascii' codec can't encode characters,的錯誤解決辦法,需要的朋友可以參考下
    2017-08-08
  • Pytorch測試神經(jīng)網(wǎng)絡(luò)時(shí)出現(xiàn) RuntimeError:的解決方案

    Pytorch測試神經(jīng)網(wǎng)絡(luò)時(shí)出現(xiàn) RuntimeError:的解決方案

    這篇文章主要介紹了Pytorch測試神經(jīng)網(wǎng)絡(luò)時(shí)出現(xiàn) RuntimeError:的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Django 大文件下載實(shí)現(xiàn)過程解析

    Django 大文件下載實(shí)現(xiàn)過程解析

    這篇文章主要介紹了Django 大文件下載實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 詳解python算法常用技巧與內(nèi)置庫

    詳解python算法常用技巧與內(nèi)置庫

    這篇文章主要介紹了python算法常用技巧與內(nèi)置庫,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Python可視化神器pyecharts繪制漏斗圖

    Python可視化神器pyecharts繪制漏斗圖

    這篇文章主要介紹了Python可視化神器pyecharts繪制漏斗圖,漏斗圖是由Light等在1984年提出,一般以單個研究的效應(yīng)量為橫坐標(biāo),樣本含量為縱坐標(biāo)做的散點(diǎn)圖
    2022-07-07
  • Python爬蟲Xpath定位數(shù)據(jù)的兩種方法

    Python爬蟲Xpath定位數(shù)據(jù)的兩種方法

    這篇文章主要介紹了Python爬蟲Xpath定位數(shù)據(jù)的方法,第一種方法直接右鍵,將文章路徑復(fù)制下來點(diǎn)擊Copy?full?Xpath,方法二使用@制定標(biāo)簽屬性,搜索指定位置,每種方法給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • 深入理解Python中變量賦值的問題

    深入理解Python中變量賦值的問題

    在 python 中賦值語句總是建立對象的引用值,而不是復(fù)制對象。因此,python 變量更像是指針,而不是數(shù)據(jù)存儲區(qū)域,這點(diǎn)和大多數(shù)語言類似吧,比如 C++、java 等。下面這篇文章主要介紹了Python中變量賦值的問題,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01

最新評論

顺义区| 抚顺市| 专栏| 巩义市| 澳门| 苗栗县| 长垣县| 华阴市| 迁西县| 河东区| 莎车县| 华池县| 嘉禾县| 莱州市| 太湖县| 翼城县| 板桥市| 洛南县| 临夏县| 台中市| 谢通门县| 赣榆县| 南皮县| 屏东县| 秭归县| 浦城县| 四子王旗| 蕉岭县| 清流县| 曲周县| 全南县| 家居| 中牟县| 玛沁县| 内乡县| 牟定县| 中方县| 连山| 江门市| 达孜县| 海盐县|