函數遞歸,二分法,三元表達式,生成式,匿名函數,經常使用內置方法

中心主題

函數遞歸

概念

  • 遞歸調用是函數嵌套調用的一種特殊形式,
    函數在調用時,直接或間接調用了自身,就是遞歸調用
    算法

遞歸調用應該包含兩個明確的階段:回溯,遞推

  • 回溯函數

    • 就是從外向裏一層一層遞歸調用下去, 回溯階段必需要有一個明確結束的條件,
      每進入下一次遞歸時,問題的規模必須不斷減少 否則這種遞歸將毫無心義
      編碼

  • 遞推spa

    • 就是從裏向外一層一層結束遞歸設計

遞歸 舉個例子

 

畫個過程圖 理解一下 返回值的狀態變化3d

算法之二分法

二分法就是不斷地平均分,而後在已分的兩段中 分別根據條件判斷
(容器類型裏面的數字必須有大小順序)

三元表達式

若是if後面的條件成立返回if前面的值 不然返回else後面的值

列表生成式

列表生成式實際上是借用了三元表達式的思路:

後邊寫執行條件,前邊寫執行方式對象

 

 

字典生成式

字典生成式和列表生成式,都一個思路:

後邊寫執行條件,前編寫執行方式blog

集合生成式

生成器

匿名函數

爲了解決那些功能很簡單的需求而設計的一句話函數

格式

  • 函數名 = lambda 參數 :返回值排序

#參數能夠有多個,用逗號隔開 #匿名函數無論邏輯多複雜,只能寫一行,且邏輯執行結束後的內容就是返回值 #返回值和正常的函數同樣能夠是任意數據類型遞歸

好處

  • 1.使代碼精簡 2.不用起函數名 3.簡化代碼可讀性(普通函數都要從def讀起)

經常使用的內置函數

max()和min()

  • 括號內,傳入兩個或多個參數,返回極值

zip()

  • 函數用於將可迭代的對象做爲參數,
    基於for循環 將對象中對應的元素打包成一個個元組, 而後返回由這些元組組成的列表。

  • 注意

    • 若是各個迭代器的元素個數不一致, 則返回列表長度與最短的對象相同,
      利用 * 號操做符,能夠將元組解壓爲列表。

map()

  • map() 會根據提供的函數對指定序列作映射

filter()

  • 函數用於過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表。

  • 執行原理

    • 接收兩個參數,第一個爲函數,第二個爲序列, 序列的每一個元素做爲參數傳遞給函數進行判,
      而後返回 True 或 False,最後將返回 True 的元素放到新列表中

sorted()

  • sorted() 函數對全部可迭代的對象進行排序操做

  • sort 與 sorted 區別

    • sort 是應用在 list 上的方法,sorted 能夠對全部可迭代的對象進行排序操做。
      list 的 sort 方法返回的是對已經存在的列表進行操做,無返回值,
      而內建函數 sorted 方法返回的是一個新的 list,而不是在原來的基礎上進行的操做。

reduce()

  • reduce() 函數會對參數序列中元素進行累積

  • 數將一個數據集合(鏈表,元組等)中的全部數據進行下列操做:
    用傳給 reduce 中的函數 function(有兩個參數) 先對集合中的第 一、2 個元素進行操做,
    獲得的結果再與第三個數據用 function 函數運算, 最後獲得一個結果。

補充內容

字母的ASCII編碼

 

相關文章
相關標籤/搜索