python中sort方法


最近學python基礎,看了冒泡排序方法,覺得好難,今天看到冒泡排序可以有一個簡單的方法,sort(),趕緊百度學習了下,真是方便。

只有列表可以用sort方法,元組不可以使用。

一:兩種基本形式

(1)  iterable.sort(cmp=None, key=None, reverse=False)   #python 2.x
     iterable.sort(key=None, reverse=False)            #python 3.x
(2)  sorted(iterable, cmp=None, key=None, reverse=False)        #python 2.x
     sorted(iterable, key=None, reverse=False)                  #python 3.x
# 由此可看出,Python 3.x 取消了 cmp 參數,所以如果想給 sorted()函數傳參的話,就剩下key和reverse,其中reverse 就是返回正常排序的反序, 

 參數解釋:

  第一個參數是一個iterable,返回值是一個對iterable中元素進行排序后的列表(list)。

  可選的參數有三個,cmp、key和reverse。
  1)cmp指定一個定制的比較函數,這個函數接收兩個參數(iterable的元素),如果第一個參數小於第二個參數,返回一個負數;如果第一個參數等於第二個參數,返回零;如果第一個參數大於第二個參數,返回一個正數。默認值為None。
  2)key指定一個接收一個參數的函數,這個函數用於從每個元素中提取一個用於比較的關鍵字。默認值為None。
  3)reverse是一個布爾值。如果設置為True,列表元素將被倒序排列。
 
  通常來說,key和reverse比一個等價的cmp函數處理速度要快。這是因為對於每個列表元素,cmp都會被調用多次,而key和reverse只被調用一次。
簡單實例:
1.原址排序
#sort排序
a = [1, 2, 3, 9, 7, 5, 44, 33, 45, 55, 66, 322, 234, 455, 231]
a.sort()
print(a)

結果如下:

[1, 2, 3, 5, 7, 9, 33, 44, 45, 55, 66, 231, 234, 322, 455]

2.副本排序(a.分片排序)

x = [8, 4, 6, 3, 1]
y = x[:]
y.sort()
print(x) #[8, 4, 6, 3, 1]
print(y) #[1, 3, 4, 6, 8]

 b.sorted副本排序

a = [10, 8, 7, 4, 1, 3]
b = sorted(a)
print(a)     #[10, 8, 7, 4, 1, 3]
print(b)     #[1, 3, 4, 7, 8, 10]

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM