Python高階函式

2021-10-06 16:48:57 字數 1072 閱讀 4068

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 函式高階 python 函式高階

形參角度 萬能引數 動態接收位置引數 args 動態接收關鍵字引數 kwargs 的魔性用法 函式定義時 代表聚合。他將所有的位置引數 聚合成乙個元組,賦值給了args 函式定義時 將所有的關鍵字引數聚合成乙個字典中,將這個字典賦給了 kwargs 和 在函式的呼叫時 代表打散 僅限關鍵字引數 de...

Python高階 函式高階

閉包 closure 常規函式中可以在函式的引數中新增引數的預設值來簡化函式的操作,偏函式也可以做到這一點,而且會更加的方便管理函式的操作。通過內建模組functools的partial進行定義和處理 語法結構 新函式名稱 functools.partial 函式名稱,預設賦值引數 例如 全域性函式...

python 函式 高階函式

filter 函式是 python 內建的另乙個有用的高階函式,filter 函式接收乙個函式 f 和乙個list,這個函式 f 的作用是對每個元素進行判斷,返回 true或 false,filter 根據判斷結果自動過濾掉不符合條件的元素,返回由符合條件元素組成的新list。例如判斷奇偶數 def...