国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python list.sort方法和內(nèi)置函數(shù)sorted

這篇具有很好參考價值的文章主要介紹了python list.sort方法和內(nèi)置函數(shù)sorted。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

list.sort 方法會就地排序列表,也就是說不會把原列表復(fù)制一份。這也是這個方法的返回值是 None 的原因,提醒你本方法不會新建一個列表。在這種情況下返回 None 其實是Python 的一個慣例:如果一個函數(shù)或者方法對對象進行的是就地改動,那它就應(yīng)該返回None,好讓調(diào)用者知道傳入的參數(shù)發(fā)生了變動,而且并未產(chǎn)生新的對象。例如,random.shuffle 函數(shù)也遵守了這個慣例。

用返回 None 來表示就地改動這個慣例有個弊端,那就是調(diào)用者無法將其串聯(lián)起來。而返回一個新對象的方法(比如說 str 里的所有方法)則正好相反,它們可以串聯(lián)起來調(diào)用,從而形成連貫接口(fluent interface)。詳情參見維基百科中有關(guān)連貫接口的討論(https://en.wikipedia.org/wiki/Fluent_interface)。

與 list.sort 相反的是內(nèi)置函數(shù) sorted,它會新建一個列表作為返回值。這個方法可以接受任何形式的可迭代對象作為參數(shù),甚至包括不可變序列或生成器(見第 14 章)。而不管sorted 接受的是怎樣的參數(shù),它最后都會返回一個列表。不管是 list.sort 方法還是 sorted 函數(shù),都有兩個可選的關(guān)鍵字參數(shù)。

  • reverse
    如果被設(shè)定為 True,被排序的序列里的元素會以降序輸出(也就是說把最大值當作最小值來排序)。這個參數(shù)的默認值是 False。

  • key
    一個只有一個參數(shù)的函數(shù),這個函數(shù)會被用在序列里的每一個元素上,所產(chǎn)生的結(jié)果將是排序算法依賴的對比關(guān)鍵字。比如說,在對一些字符串排序時,可以用 key=str.lower 來實現(xiàn)忽略大小寫的排序,或者是用 key=len 進行基于字符串長度的排序。這個參數(shù)的默認值是恒等函數(shù)(identity function),也就是默認用元素自己的值來排序。

可選參數(shù) key 還可以在內(nèi)置函數(shù) min() 和 max() 中起作用。另外,還有些標準庫里的函數(shù)也接受這個參數(shù),像 itertools.groupby() 和 heapq.nlargest() 等。

下面通過幾個小例子來看看這兩個函數(shù)和它們的關(guān)鍵字參數(shù):

>>> fruits = ['grape', 'raspberry', 'apple', 'banana'] 
>>> sorted(fruits) 
['apple', 'banana', 'grape', 'raspberry'] 
>>> fruits 
['grape', 'raspberry', 'apple', 'banana'] 
>>> sorted(fruits, reverse=True) 
['raspberry', 'grape', 'banana', 'apple'] 
>>> sorted(fruits, key=len) 
['grape', 'apple', 'banana', 'raspberry'] 
>>> sorted(fruits, key=len, reverse=True) 
['raspberry', 'banana', 'grape', 'apple'] 
>>> fruits 
['grape', 'raspberry', 'apple', 'banana'] 
>>> fruits.sort() 
>>> fruits 
['apple', 'banana', 'grape', 'raspberry']

sortedlist.sort 背后的排序算法是 Timsort,它是一種自適應(yīng)算法,會根據(jù)原始數(shù)據(jù)的順序特點交替使用插入排序歸并排序,以達到最佳效率。這樣的算法被證明是很有效的,因為來自真實世界的數(shù)據(jù)通常是有一定的順序特點的。維基百科上有一個條目是關(guān)于這個算法的(https://en.wikipedia.org/wiki/Timsort)。文章來源地址http://www.zghlxwxcb.cn/news/detail-800456.html

到了這里,關(guān)于python list.sort方法和內(nèi)置函數(shù)sorted的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • python中sorted()函數(shù)解析

    sorted() 函數(shù)對所有可迭代的對象進行排序操作。 sort 與 sorted 區(qū)別: sort 是應(yīng)用在 list 上的方法,sorted 可以對所有可迭代的對象進行排序操作。 list 的 sort 方法返回的是對已經(jīng)存在的列表進行操作,無返回值,而內(nèi)建函數(shù) sorted 方法返回的是一個新的 list,而不是在原來的基礎(chǔ)

    2024年02月03日
    瀏覽(20)
  • Python基礎(chǔ)之sorted()函數(shù)用法

    本篇是關(guān)于sorted()函數(shù)的一些基本用法,如有不足缺陷歡迎補充指正。 1、簡單的排序 sorted函數(shù)可以對可迭代類型的容器內(nèi)的數(shù)據(jù)進行排序 2、進階使用 sorted(L,key=···) 其中key用來接收一個自定義的排序規(guī)則 3、選擇升序還是降序排列方式 其中sorted函數(shù)是默認升序排序,

    2024年02月11日
    瀏覽(19)
  • Python 列表 sort()函數(shù)使用詳解

    Python 列表 sort()函數(shù)使用詳解

    「作者主頁」: 士別三日wyx 「作者簡介」: CSDN top100、阿里云博客專家、華為云享專家、網(wǎng)絡(luò)安全領(lǐng)域優(yōu)質(zhì)創(chuàng)作者 「推薦專欄」: 小白零基礎(chǔ)《Python入門到精通》 sort() 可以對列表進行 「排序」 語法 參數(shù) key :(可選)指定排序規(guī)則 reverse :(可選)升序降序 返回值 返回

    2024年02月13日
    瀏覽(23)
  • Python 函數(shù) sort(),sorted() 之區(qū)別及 key=lambda x:x[] 之理解

    ????????實務(wù)中,我們經(jīng)常需要將數(shù)據(jù)排序,Python 內(nèi)置函數(shù) sorted() 及列表操作函數(shù) sort() 均可實現(xiàn)該功能。 ????????二者的完整語法如下: key:排序依據(jù),通常為函數(shù)名,如 abs、str.lower、str.upper 等;或以函數(shù)指定可迭代對象中的某個元素來進行排序。 reverse:排序規(guī)

    2024年02月03日
    瀏覽(24)
  • 為什么list.sort()比Stream().sorted()更快?

    為什么list.sort()比Stream().sorted()更快?

    真的更好嗎? 先簡單寫個demo 輸出 由此可見list原生排序性能更好。 能證明嗎? 證據(jù)錯了。 再把demo變換一下,先輸出stream.sort 此時輸出變成了 這能證明上面的結(jié)論錯誤了嗎? 都不能。 兩種方式都不能證明什么。 使用這種方式在很多場景下是不夠的,某些場景下,JVM會對代

    2024年02月14日
    瀏覽(22)
  • C# list的sort排序

    目錄 前言: 值類型的排序: 方法一:直接調(diào)用sort函數(shù) 方法二:通過C# ling表達式與CompareTo接口配合使用 方法三:降序的實現(xiàn) 對于自定義類型的sort排序? 方法一:通過實現(xiàn)IComparable接口重寫CompareTo方法來排序 方法二:通過ling表達式實現(xiàn)? ????????有時需要對List列表中內(nèi)

    2024年02月15日
    瀏覽(618)
  • 1028 List Sorting (PAT甲級)

    Excel can sort records according to any column. Now you are supposed to imitate this function. Input Specification: Each input file contains one test case. For each case, the first line contains two integers?N?(≤105) and?C, where?N?is the number of records and?C?is the column that you are supposed to sort the records with. Then?N?lines follow, eac

    2024年02月15日
    瀏覽(16)
  • 為什么 list.sort() 比 stream().sorted() 要更快?測試結(jié)果把我驚呆了!

    為什么 list.sort() 比 stream().sorted() 要更快?測試結(jié)果把我驚呆了!

    作者:是奉壹呀 來源:juejin.cn/post/7262274383287500860 看到一個評論,里面提到了list.sort()和list.strem().sorted()排序的差異。 說到list sort()排序比stream().sorted()排序性能更好,但沒說到為什么。 有朋友也提到了這一點。本文重新開始,先問是不是,再問為什么。 推薦一個開源免費的

    2024年02月09日
    瀏覽(20)
  • Python基礎(chǔ)知識:整理15 列表的sort方法

    Python基礎(chǔ)知識:整理15 列表的sort方法

    之前我們學(xué)習(xí)過 sorted() 方法,可以對列表、元組、集合及字典進行排序? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 但是上述的方法對于嵌套的數(shù)據(jù)就不好實現(xiàn)排序了,sort()方法便可以登場了!

    2024年01月19日
    瀏覽(17)
  • PTA 1052 Linked List Sorting

    個人學(xué)習(xí)記錄,代碼難免不盡人意。 A linked list consists of a series of structures, which are not necessarily adjacent in memory. We assume that each structure contains an integer key and a Next pointer to the next structure. Now given a linked list, you are supposed to sort the structures according to their key values in increasing order. Inp

    2024年02月15日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包