Python中的 sort 和 sorted的用法與區(qū)別
今天在做一道題時,因為忘了Python中sort和sorted的用法與區(qū)別導致程序一直報錯,找了好久才知道是使用方法錯誤的問題!現(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,并不是真正想要的結果;正確做法是只要調用了 a.sort(),原列表 a 就變?yōu)橐粋€升序的列表了,就可以直接使用 a 了;
2. sorted:
sorted() 函數(shù)是Python中的內置函數(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]
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
告別網頁搜索!教你用python實現(xiàn)一款屬于自己的翻譯詞典軟件
教你用python做一款屬于自己的翻譯詞典軟件,從此告別網頁搜索,文中有非常詳細的代碼示例,小伙伴們快快行動吧,需要的朋友可以參考下2021-06-06python Requsets下載開源網站的代碼(帶索引 數(shù)據(jù))
這篇文章主要介紹了python Requsets下載開源網站的代碼(帶索引 數(shù)據(jù)),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04Python用zip函數(shù)同時遍歷多個迭代器示例詳解
這篇文章主要給大家進行介紹了Python如何用zip函數(shù)同時遍歷多個迭代器,文中給出了示例以及原理和注意事項,相信會對大家的理解和學習很有幫助,有需要的朋友們下面來一起學習學習吧。2016-11-11Python操作SQLite數(shù)據(jù)庫過程解析
這篇文章主要介紹了Python操作SQLite數(shù)據(jù)庫過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-09-09