Python中的 sort 和 sorted的用法與區別

這篇文章主要介紹了Python中的 sort 和 sorted的用法與區別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

今天在做一道題時,因爲忘了Python中sort和sorted的用法與區別導致程序一直報錯,找了好久才知道是使用方法錯誤的問題!現在就大致的歸納一下sort和sorted的用法與區別

1. sort:

sort是Python中列表的方法

sort() 方法語法:

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

有兩個參數,這裏不講第一個參數,第二個參數當 reverse=True時爲降序排列,reverse=False爲升序排列,默認reverse=False

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

代碼案例:

"""test"""
a = [4, 5, 6, 3, 2, 320, 5, 1] # 創建一個列表
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 變爲 None,並不是真正想要的結果;正確做法是隻要調用了 a.sort(),原列表 a 就變爲一個升序的列表了,就可以直接使用 a 了;

2. sorted:

sorted() 函數是Python中的內置函數

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

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

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

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

代碼案例:

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

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

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

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

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持神馬文庫。

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