Python 中 sorted 的用法__Python

來源:互聯網
上載者:User

sorted 排序方法主要是用在 list 和 dict 中。

sorted 介紹:



其中, iterable 是可迭代類型

           cmp 是用於比較的函數,比較什麼由key 決定

           key 是列表元素的某個屬性或函數進行作為關鍵字,有預設值,迭代集合中的一項

           reverse  是定序,reverse = True 表示降序, reverse= False 表示升序,有預設值

           傳回值 是一個經過排序的可迭代類型,與iterable 一樣


栗子:

(1)對由tuple 組成的List 排序

         Python 代碼

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

(2) 用key 函數排序:返回由tuple 組成的 list

        Python 代碼

       

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

(3) 用cmp 函數排序

         Python 代碼

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


(4)對字典排序, 返回由tuple 組成的List 不再是字典

         Python 代碼

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


(5)簡單排序栗子:

          Python 代碼:

#coding:utf-8input = [[180, 18, 3], [58, 103, 48, 340], [17, 240], [22, 24, 25, 33, 44], [100]]def seq_sorted(seq):    sort_index = sorted(range(len(seq)), key=lambda x: len(seq[x]))    return sort_indexsort_index = seq_sorted(input)# print sort_indexout_sentences = [input[i] for i in sort_index]print out_sentences


執行後可以得到的結果:

/usr/bin/python2.7 /home/yongcai/PycharmProjects/tensorflow/Python/sorted.py[[100], [17, 240], [180, 18, 3], [58, 103, 48, 340], [22, 24, 25, 33, 44]]





相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.