• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    python中List的sort方法指南

    來源:懂視網 責編:小采 時間:2020-11-27 14:38:11
    文檔

    python中List的sort方法指南

    python中List的sort方法指南:簡單記一下python中List的sort方法(或者sorted內建函數)的用法。 List的元素可以是各種東西,字符串,字典,自己定義的類等。 sorted函數用法如下: sorted(data, cmp=None, key=None, reverse=False) 其中,data是待排序數據,可
    推薦度:
    導讀python中List的sort方法指南:簡單記一下python中List的sort方法(或者sorted內建函數)的用法。 List的元素可以是各種東西,字符串,字典,自己定義的類等。 sorted函數用法如下: sorted(data, cmp=None, key=None, reverse=False) 其中,data是待排序數據,可

    簡單記一下python中List的sort方法(或者sorted內建函數)的用法。

    List的元素可以是各種東西,字符串,字典,自己定義的類等。

    sorted函數用法如下:

    sorted(data, cmp=None, key=None, reverse=False)

    其中,data是待排序數據,可以使List或者iterator, cmp和key都是函數,這兩個函數作用與data的元素上產生一個結果,sorted方法根據這個結果來排序。

    cmp(e1, e2) 是帶兩個參數的比較函數, 返回值: 負數: e1 < e2, 0: e1 == e2, 正數: e1 > e2. 默認為 None, 即用內建的比較函數.
    key 是帶一個參數的函數, 用來為每個元素提取比較值. 默認為 None, 即直接比較每個元素.
    通常, key 和 reverse 比 cmp 快很多, 因為對每個元素它們只處理一次; 而 cmp 會處理多次.

    通過例子來說明sorted的用法:

    1. 對由tuple組成的List排序

    >>> students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10),] 
    
    

    用key函數排序(lambda的用法見 注釋1)

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

    用cmp函數排序

    >>> sorted(students, cmp=lambda x,y : cmp(x[2], y[2])) # sort by age 
    [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)] 
    
    

    用 operator 函數來加快速度, 上面排序等價于:(itemgetter的用法見 注釋2)

    >>> from operator import itemgetter, attrgetter 
    >>> sorted(students, key=itemgetter(2)) 
    
    

    用 operator 函數進行多級排序

    >>> sorted(students, key=itemgetter(1,2)) # sort by grade then by age 
    [('john', 'A', 15), ('dave', 'B', 10), ('jane', 'B', 12)] 

    2. 對由字典排序

    >>> d = {'data1':3, 'data2':1, 'data3':2, 'data4':4} 
    >>> sorted(d.iteritems(), key=itemgetter(1), reverse=True) 
    [('data4', 4), ('data1', 3), ('data3', 2), ('data2', 1)] 

    注釋1
    參考:http://jasonwu.me/2011/10/29/introduce-to-python-lambda.html

    注釋2
    參考:http://ar.newsmth.net/thread-90745710c90cf1.html

    class itemgetter(__builtin__.object) 
    | itemgetter(item, ...) --> itemgetter object 
    | 
    | Return a callable object that fetches the given item(s) from its operand. 
    | After, f=itemgetter(2), the call f(r) returns r[2]. 
    | After, g=itemgetter(2,5,3), the call g(r) returns (r[2], r[5], r[3]) 
    

    相當于

    def itemgetter(i,*a): 
     def func(obj): 
     r = obj[i] 
     if a: 
     r = (r,) + tuple(obj[i] for i in a) 
     return r 
     return func 
     
    >>> a = [1,2,3] 
    >>> b=operator.itemgetter(1) 
    >>> b(a) 
    2 
    >>> b=operator.itemgetter(1,0) 
    >>> b(a) 
    (2, 1) 
    >>> b=itemgetter(1) 
    >>> b(a) 
    2 
    >>> b=itemgetter(1,0) 
    >>> b(a) 
    (2, 1) 
    
    

    參考資料:
    1. http://www.linuxso.com/linuxbiancheng/13340.html
    2. http://www.douban.com/note/13460891/

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    python中List的sort方法指南

    python中List的sort方法指南:簡單記一下python中List的sort方法(或者sorted內建函數)的用法。 List的元素可以是各種東西,字符串,字典,自己定義的類等。 sorted函數用法如下: sorted(data, cmp=None, key=None, reverse=False) 其中,data是待排序數據,可
    推薦度:
    標簽: 方法 列表 列表中
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 久久97精品久久久久久久不卡 | 无码国产精品一区二区免费模式| 国产色婷婷五月精品综合在线| 国内精品久久久久久久亚洲| 99re国产精品视频首页| 夜夜爽一区二区三区精品| 99精品在线免费| 高清在线亚洲精品国产二区| 亚洲国产精品一区二区成人片国内 | 999精品色在线播放| 国产最新进精品视频| 亚洲精品V欧洲精品V日韩精品| 久久久久久青草大香综合精品 | 欧美人与动牲交a欧美精品| www.精品| 欧美精品免费观看二区| 99久久国产热无码精品免费| 人妻少妇偷人精品无码| 在线精品亚洲一区二区三区| 欧美国产成人精品一区二区三区 | 九九久久精品无码专区| 国产国产成人久久精品| 久久久国产精品福利免费| avtt天堂网久久精品| 国产在线精品一区二区中文| 久久亚洲欧美国产精品| 无码人妻丰满熟妇精品区| 亚洲精品无码不卡在线播放HE| 亚洲精品WWW久久久久久| 无码人妻精品一区二区蜜桃AV| 日韩精品一区二区三区中文字幕| 精品人妻V?出轨中文字幕| 国产三级精品三级在专区| 国产精品久久久99| 99热成人精品国产免男男| www夜片内射视频日韩精品成人| 99久久国产主播综合精品 | 下载天堂国产AV成人无码精品网站| 麻豆国内精品欧美在线| 麻豆国内精品久久久久久| 久久午夜无码鲁丝片午夜精品|