Python高階函式 邱乘屹的個人技術部落格

2021-10-06 16:15:41 字數 1072 閱讀 8817

lambda只是乙個表示式,函式體比def簡單很多。

lambda的主體是乙個表示式,而不是乙個**塊。僅僅能在lambda表示式中封裝有限的邏輯進去。

lambda表示式是起到乙個函式速寫的作用。允許在**內嵌入乙個函式的定義。

格式:lambda的一般形式是關鍵字lambda後面跟乙個或多個引數,緊跟乙個冒號,之後是乙個表示式。

sum = lambda a,b : a+b

print(sum(1,2))

利用 filter、lambda表示式 獲取list1中元素小於33的所有元素 list1 = [11, 22, 33, 44, 55]

list1= [11,22,33,44,55]

a = filter(lambda x: x<33, list1)

print(list(a))

利用map,lambda表示式將所有偶數元素加100

list1= [11,22,33,44,55]

ret = map(lambda x:x if x % 2 != 0 else x + 100,list1)

print(list(ret))

在reduce()函式中,init是可選的,如果指定,則作為第一次迭代的第乙個元素使用,如果沒有指定,就取seq中的第乙個元素。

from functools import reduce

def f(x, y):

return x + y

print(reduce(f, [1, 3, 5, 7, 9]))

sort 與 sorted 區別:

sort 是應用在 list 上的方法,sorted 可以對所有可迭代的物件進行排序操作。

list 的 sort 方法返回的是對已經存在的列表進行操作,而內建函式 sorted 方法返回的是乙個新的 list,而不是在原來的基礎上進行的操作。

a = sorted([5, 2, 3, 1, 4],reverse=true)

print(a)

Python遞迴 邱乘屹的個人技術部落格

遞迴的優劣勢 遞迴的使用場景 遞迴就是一種直接或者間接的呼叫自身函式或者方法的演算法,它通常把乙個大型複雜的問題層層轉化為乙個與原問題相似的規模較小的問題來求解。遞迴的最大深度,如何解決?遞迴的最大深度為998,如果超過最大深度,會導致棧溢位 如何解決遞迴最大深度問題呢?import sys sys...

python中的迴圈語句 邱乘屹的個人技術部落格

1.range函式 star 計數從star開始.預設是從0開始 stop 計數到stop結束,但不包括stop step 步長,預設為1 range 5 等價與 range 0,5 range 1,10,2 獲取所有奇數,這裡面的 2 就代表步長2.for迴圈 基本使用 for 變數 in 迴圈的...

Python的三器 邱乘屹的個人技術部落格

迭代器生成器 裝飾器的本質就是乙個閉包函式,其作用就是在不修改原函式及其呼叫方式的情況下對原函式功能進行擴充套件 閉包原理def wraper func b 我是b 閉包中inner中的b變數先從inner中獲取值,沒有則從wraper中獲取一層層往上找 definner a print a,b p...