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

Python中的sort()方法使用基礎(chǔ)教程

 更新時(shí)間:2017年01月08日 10:47:42   作者:路永遠(yuǎn)在腳下  
這篇文章主要介紹了Python中的sort()方法使用基礎(chǔ)教程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下

一、基本形式

sorted(iterable[, cmp[, key[, reverse]]])
iterable.sort(cmp[, key[, reverse]])

 參數(shù)解釋?zhuān)?/p>

 (1)iterable指定要排序的list或者iterable,不用多說(shuō);

 (2)cmp為函數(shù),指定排序時(shí)進(jìn)行比較的函數(shù),可以指定一個(gè)函數(shù)或者lambda函數(shù),如:

       students為類(lèi)對(duì)象的list,沒(méi)個(gè)成員有三個(gè)域,用sorted進(jìn)行比較時(shí)可以自己定cmp函數(shù),例如這里要通過(guò)比較第三個(gè)數(shù)據(jù)成員來(lái)排序,代碼可以這樣寫(xiě):

students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
sorted(students, key=lambda student : student[2])

(3)key為函數(shù),指定取待排序元素的哪一項(xiàng)進(jìn)行排序,函數(shù)用上面的例子來(lái)說(shuō)明,代碼如下:

sorted(students, key=lambda student : student[2])

       key指定的lambda函數(shù)功能是去元素student的第三個(gè)域(即:student[2]),因此sorted排序時(shí),會(huì)以students所有元素的第三個(gè)域來(lái)進(jìn)行排序。

二、普通用法:

 1.原址排序

1)列表有自己的sort方法,其對(duì)列表進(jìn)行原址排序,既然是原址排序,那顯然元組不可能擁有這種方法,因?yàn)樵M是不可修改的。

x = [4, 6, 2, 1, 7, 9]
x.sort()
print x # [1, 2, 4, 6, 7, 9]

2.副本排序

1)[:]分片方法

x =[4, 6, 2, 1, 7, 9]
y = x[ : ]
y.sort()
print y #[1, 2, 4, 6, 7, 9]
print x #[4, 6, 2, 1, 7, 9]

注意:y = x[:] 通過(guò)分片操作將列表x的元素全部拷貝給y,如果簡(jiǎn)單的把x賦值給y:y = x,y和x還是指向同一個(gè)列表,并沒(méi)有產(chǎn)生新的副本。

2)sorted方法

sorted返回一個(gè)有序的副本,并且類(lèi)型總是列表,如下:

x =[4, 6, 2, 1, 7, 9]
y = sorted(x)
print y #[1, 2, 4, 6, 7, 9]
print x #[4, 6, 2, 1, 7, 9] 
print sorted('Python') #['P', 'h', 'n', 'o', 't', 'y']

三、高級(jí)用法

1.自定義cmp比較函數(shù)

def comp(x, y):
if x < y:
return 1
elif x > y:
return -1
else:
return 0
nums = [3, 2, 8 ,0 , 1]
nums.sort(comp)
print nums # 降序排序[8, 3, 2, 1, 0]
nums.sort(cmp) # 調(diào)用內(nèi)建函數(shù)cmp ,升序排序
print nums # 降序排序[0, 1, 2, 3, 8]

2.自定義key和reverse

1.reverse實(shí)現(xiàn)降序排序,需要提供一個(gè)布爾值,默認(rèn)為False(升序排列)。

2.key在使用時(shí)必須提供一個(gè)排序過(guò)程總調(diào)用的函數(shù):

alist = [('2', '3', '10'), ('1', '2', '3'), ('5', '6', '7'), ('2', '5', '10'), ('2', '4', '10')]
# 多級(jí)排序,先按照第3個(gè)元素排序,然后按照第2個(gè)元素排序:
print sorted(alist, cmp = None, key = lambda x:(int(x[2]), int(x[1])), reverse = False)
-------------------------------------------------------------------------------------------
[('1', '2', '3'), ('5', '6', '7'), ('2', '3', '10'), ('2', '4', '10'), ('2', '5', '10')]

 四、operator.itemgetter函數(shù)

operator模塊提供的itemgetter函數(shù)用于獲取對(duì)象的哪些維的數(shù)據(jù),參數(shù)為一些序號(hào)(即需要獲取的數(shù)據(jù)在對(duì)象中的序號(hào)),下面看例子。

a = [1,2,3]
>>> b=operator.itemgetter(1)   //定義函數(shù)b,獲取對(duì)象的第1個(gè)域的值
>>> b(a)
2
>>> b=operator.itemgetter(1,0) //定義函數(shù)b,獲取對(duì)象的第1個(gè)域和第0個(gè)的值
>>> b(a)
(2, 1)

要注意,operator.itemgetter函數(shù)獲取的不是值,而是定義了一個(gè)函數(shù),通過(guò)該函數(shù)作用到對(duì)象上才能獲取值。

itemgetter在sort中的用法:

from operator import itemgetter
alist = [('2', '3', '10'), ('1', '2', '3'), ('5', '6', '7'), ('2', '5', '10'), ('2', '4', '10')]
# 多級(jí)排序,先按照第3個(gè)元素排序,然后按照第2個(gè)元素排序:
print sorted(alist, cmp = None, key = itemgetter(2, 1), reverse = False)
print sorted(alist, cmp = None, key = lambda x:itemgetter(2, 1)(x), reverse = False)
print sorted(alist, cmp = None, key = lambda x:map(int, itemgetter(2, 1)(x)), reverse = False)
--------------------------------------------------------------------------------------------------
[('2', '3', '10'), ('2', '4', '10'), ('2', '5', '10'), ('1', '2', '3'), ('5', '6', '7')]
[('2', '3', '10'), ('2', '4', '10'), ('2', '5', '10'), ('1', '2', '3'), ('5', '6', '7')]
[('1', '2', '3'), ('5', '6', '7'), ('2', '3', '10'), ('2', '4', '10'), ('2', '5', '10')]

以上所述是小編給大家介紹的Python中的sort()方法使用基礎(chǔ) ,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!

相關(guān)文章

  • python 把數(shù)據(jù) json格式輸出的實(shí)例代碼

    python 把數(shù)據(jù) json格式輸出的實(shí)例代碼

    下面小編就為大家?guī)?lái)一篇python 把數(shù)據(jù) json格式輸出的實(shí)例代碼。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-10-10
  • python tkinter窗口最大化的實(shí)現(xiàn)

    python tkinter窗口最大化的實(shí)現(xiàn)

    這篇文章主要介紹了python tkinter窗口最大化的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python網(wǎng)絡(luò)應(yīng)用開(kāi)發(fā)知識(shí)點(diǎn)淺析

    python網(wǎng)絡(luò)應(yīng)用開(kāi)發(fā)知識(shí)點(diǎn)淺析

    在本篇內(nèi)容中小編給學(xué)習(xí)python的朋友們整理了關(guān)于網(wǎng)絡(luò)應(yīng)用開(kāi)發(fā)的相關(guān)知識(shí)點(diǎn)以及實(shí)例內(nèi)容,需要的朋友們參考下。
    2019-05-05
  • python中entry用法講解

    python中entry用法講解

    在本篇文章里小編給大家整理的是一篇關(guān)于python中entry用法講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2020-12-12
  • 關(guān)于jupyter代碼自動(dòng)補(bǔ)全設(shè)置方式

    關(guān)于jupyter代碼自動(dòng)補(bǔ)全設(shè)置方式

    這篇文章主要介紹了關(guān)于jupyter代碼自動(dòng)補(bǔ)全設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python+OpenCV繪制多instance的Mask圖像

    Python+OpenCV繪制多instance的Mask圖像

    Mask圖像中,不同值表示不同的實(shí)例(instance)。本文將詳細(xì)為大家講講如何利用OpenCV繪制多instance的Mask圖像,感興趣的可以學(xué)習(xí)一下
    2022-06-06
  • python中poetry安裝依賴(lài)

    python中poetry安裝依賴(lài)

    本文主要介紹了Poetry工具及其在Python項(xiàng)目中的安裝和使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • Python時(shí)區(qū)設(shè)置方法與pytz查詢(xún)時(shí)區(qū)教程

    Python時(shí)區(qū)設(shè)置方法與pytz查詢(xún)時(shí)區(qū)教程

    這篇文章主要介紹了Python時(shí)區(qū)設(shè)置的方法和pytz查詢(xún)時(shí)區(qū)的方法,大家參考使用吧
    2013-11-11
  • linux中使用Python對(duì)圖片進(jìn)行批量命名

    linux中使用Python對(duì)圖片進(jìn)行批量命名

    大家好,本篇文章主要講的是linux中使用Python對(duì)圖片進(jìn)行批量命名,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • pytorch visdom安裝開(kāi)啟及使用方法

    pytorch visdom安裝開(kāi)啟及使用方法

    這篇文章主要介紹了pytorch visdom安裝開(kāi)啟及使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評(píng)論

庐江县| 浙江省| 廊坊市| 灌云县| 濉溪县| 永川市| 商城县| 龙口市| 正蓝旗| 旬阳县| 海南省| 云和县| 马龙县| 江油市| 阿尔山市| 宁晋县| 大邑县| 衢州市| 石景山区| 富平县| 安达市| 武宣县| 盘锦市| 漯河市| 高平市| 莆田市| 贞丰县| 肃宁县| 石柱| 龙海市| 普宁市| 彭阳县| 舒兰市| 滦南县| 长春市| 普洱| 滦平县| 鄂托克前旗| 新民市| 荔浦县| 曲靖市|