溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python中的 sort 和 sorted的用法與區(qū)別

發(fā)布時間:2020-10-17 20:03:12 來源:腳本之家 閱讀:127 作者:springionic 欄目:開發(fā)技術(shù)

今天在做一道題時,因為忘了Python中sort和sorted的用法與區(qū)別導(dǎo)致程序一直報錯,找了好久才知道是使用方法錯誤的問題!現(xiàn)在就大致的歸納一下sort和sorted的用法與區(qū)別

1. sort:

sort是Python中列表的方法

sort() 方法語法:

list.sort(key=None, reverse=False)

有兩個參數(shù),這里不講第一個參數(shù),第二個參數(shù)當 reverse=True時為降序排列,reverse=False為升序排列,默認reverse=False

重要: 該方法沒有返回值,也就是返回值為 None,而我也正是在這里犯錯了

代碼案例:

"""test"""
a = [4, 5, 6, 3, 2, 320, 5, 1] # 創(chuàng)建一個列表
print(a) # 打印列表,輸出為:[4, 5, 6, 3, 2, 320, 5, 1]

print(a.sort()) # 輸出為:None
print(a) # 輸出為:[1, 2, 3, 4, 5, 5, 6, 320]

a = a.sort()
print(a) # 輸出為:None

錯用 a = a.sort(),以為可以把列表 a 按升序排列,其實只會把 a 變?yōu)?None,并不是真正想要的結(jié)果;正確做法是只要調(diào)用了 a.sort(),原列表 a 就變?yōu)橐粋€升序的列表了,就可以直接使用 a 了;

2. sorted:

sorted() 函數(shù)是Python中的內(nèi)置函數(shù)

語法: sorted(iterable=None, key=None, reverse=False)

共有三個參數(shù),后兩個參數(shù)和 list.sort() 方法中的參數(shù)意思沒有差別,第一個參數(shù)是一個可迭代對象

返回值:返回重新排列的列表

注意:和 list.sort() 方法不一樣的是,該函數(shù)不該變原來的可迭代對象,如 a 為一個列表,sorted(a) ,并不會改變 a,只會返回一個排序后的新列表

代碼案例:

"""test"""
a = [4, 5, 6, 3, 2, 320, 5, 1] # 創(chuàng)建一個列表

print(a) # 輸出:[4, 5, 6, 3, 2, 320, 5, 1]

sorted(a)
print(a)  # 輸出:[4, 5, 6, 3, 2, 320, 5, 1],因為sorted() 函數(shù)不會改變原先的列表

print(sorted(a))  # 輸出:[1, 2, 3, 4, 5, 5, 6, 320],因為 sorted() 函數(shù)返回一個排序好的列表

a = sorted(a)
print(a)  # 現(xiàn)在用 sorted 函數(shù)就可以這樣使用而不會出現(xiàn)錯誤了,輸出:[1, 2, 3, 4, 5, 5, 6, 320]

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI