sorted、sort、reverse使用小結一下(總是用錯和用混淆)

按理來說這幾個函數再簡單不過了,早就應該爛熟於心了。可是,

最近經常用這幾個函數,但是總是用混淆,這裏再囉嗦總結一下,這弱智的使用。

reverse():

將列表中元素反轉排序,比如下面這樣
>>> x = [1,5,2,3,4]
>>> x.reverse()
>>> x
[4, 3, 2, 5, 1]

>>>

>>>x = x.reverse()

>>>x

None

x = x.reverse()這樣的做法是不對的,因爲這樣處理的話得到的並不是直接的列表反轉值,而是一個None,所以只需直接在原列表進行反轉就行。

sort()排序方法:

(1)sorted()方法使用

需要注意以下幾點:

(1)sort()對列表內容進行正向排序;

(2)排序後的新列表會覆蓋原列表(id不變),也就是sort排序方法是直接修改原列表list排序方法;

(3)使用方法是a.sort(),不需要再a = a.sort(),如果這樣處理的話,print a得到的值依然是None。
>>> a = [5,7,6,3,4,1,2]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5, 6, 7]

對sort()方法比較糊塗。有的時候會需要一個排序好的列表,而又想保存原有未排序列表,他們會這麼操作:
>>> a = [5,7,6,3,4,1,2]
>>> b = a.sort()
>>> print b
None

>>>

>>>a = a.sort()

>>>print a

None
這個時候問題出現了,變量a和b得到的都是一個空值。所以在使用的過程中一定是a.sort()。不是a = a.sort()或者b=a.sort()。

這只是正向的輸出,那麼逆向的輸出呢?

(2)sort()排序反轉

反向輸出的時候:

>>>a.sort(reverse = True)

>>>a

[7,6,5,4,3,2,1]

那麼想要得到排序好的列表,又想保留原列表怎麼辦呢?列表sorted()方法可以幫你實現。

sorted()方法

(1)sorted()方法使用

即可以保留原列表,又能得到已經排序好的列表sorted()操作方法如下:
>>> a = [5,7,6,3,4,1,2]
>>> b = sorted(a)
>>> a
[5, 7, 6, 3, 4, 1, 2]
>>> b
[1, 2, 3, 4, 5, 6, 7]

(2)sorted()排序反轉

反向輸出的時候:

方法1:

>>>b = sorted(a, reverse = True)

>>>b

[7,6,5,4,3,2,1]

或者方法2:

>>>b= sorted(a)

>>>b.reverse()

>>>b

[7,6,5,4,3,2,1]

(3)sorted()處理其他類型數據

sorted()方法可以用在任何數據類型的序列中,返回的總是一個列表形式:
>>> sorted('iplaypython.com')
['.', 'a', 'c', 'h', 'i', 'l', 'm', 'n', 'o', 'o', 'p', 'p', 't', 'y', 'y']

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章