首頁 > 軟體

python中sort()函數用法詳解

2022-08-15 22:01:59

1.函數sort()是對列表就地排序

>>> x=[8,9,0,7,4,5,1,2,3,6]
>>> x.sort()
>>> print(x)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

2.函數sort()修改序列,不返回任何值

>>> x=[8,9,0,7,4,5,1,2,3,6]
>>> y=x.sort()
>>> print(y)
None
>>> print(x)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

3.sorted()函數會返回一個排序列表,不改變原有序列

>>> x=[8,9,0,7,4,5,1,2,3,6]
>>> y=sorted(x)
>>> print(y)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print(x)
[8, 9, 0, 7, 4, 5, 1, 2, 3, 6]

4.函數sort()是升序排序,如何降序排序,需要用到函數reverse()

>>> x=[8,9,0,7,4,5,1,2,3,6]
>>> x.sort()
>>> x.reverse()
>>> print(x)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

5.函數sort()排序的高階用法

方法sort()可以接受兩個引數sort(key,reverse)

(1) key引數

key接受的是一個只有一個形參的函數

key接受的函數返回值,表示此元素的權值,sort將按照權值大小進行排序

>>> x=[8,9,0,7,4,5,1,2,3,6]
>>> def size(a):
>>>     x=10-int(a)
>>>     return x
>>> x.sort(key=size)
>>> print(x)

[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

(2) reverse引數

reverse接受的是一個bool型別的值 (Ture or False),表示是否顛倒排列順序,一般預設的是False,注意第一個字母是大寫的

>>> x=[8,9,0,7,4,5,1,2,3,6]
>>> x.sort(reverse=True)
>>> print(x)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> x.sort(reverse=False)
>>> print(x)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> 

補充:python中sort的用法——對列表中的元素按關鍵字排序

在python中,sort是列表排序的一種方法,呼叫方式為list.sort(),這樣會改變原來列表的值。

sort(key, reverse)方法有key和reverse兩種引數,其中key表示的是排序的關鍵字,reverse表示的是排序的方式(reverse=False表示升序和reverse=True表示降序)

sort()方法預設是升序排序,即預設reverse=False。

下面主要寫一下如何用sort根據關鍵字排序:

對於一個列表,其中的元素也是列表,要根據元素中的值進行排序,直接看程式碼:

例子一:

l = [[1,2,3],[2,2,1],[2,1,3]]

l.sort(key = lambda x: (x[0],-x[1]))
'''
其中key表示按第幾個關鍵字排序,lambda x:後()中的元素表示了關鍵字的優先順序
第一位表示最高的優先順序,第二位次之。。。
其中下x[0]表示按第一個關鍵詞的升序排列,-x[1]表示按第二個關鍵詞的降序排列。
'''
print(l)
#輸出:[[1, 2, 3], [2, 2, 1], [2, 1, 3]]

例子二:

l = [[1,2,2],[2,2,1],[2,1,3]]

l.sort(key = lambda x: (-x[2],x[1]))
#表示按第三個元素的降序排列,然後再根據第二個元素的升序排
print(l)
#輸出:[[2, 1, 3], [1, 2, 2], [2, 2, 1]]

總結

到此這篇關於python中sort()函數用法的文章就介紹到這了,更多相關python sort()函數用法內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com