Python高階函數 - 邱乘屹的個人技術博客

lambda匿名函數

  1. lambda只是一個表達式,函數體比def簡單很多。
  2. lambda的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。
  3. lambda表達式是起到一個函數速寫的作用。允許在代碼內嵌入一個函數的定義。
  4. 格式:lambda的一般形式是關鍵字lambda後面跟一個或多個參數,緊跟一個冒號,之後是一個表達式。
sum = lambda a,b : a+b
print(sum(1,2))

filter()函數 可以對序列做過濾處理

利用 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()函數 對序列根據設定條件進行操作後返回他設置的操作方法

利用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() 化簡函數

  1. reduce()函數即爲化簡函數,它的執行過程爲:每一次迭代,都將上一次的迭代結果與下一個元素一同傳入二元func函數中去執行。
  2. 在reduce()函數中,init是可選的,如果指定,則作爲第一次迭代的第一個元素使用,如果沒有指定,就取seq中的第一個元素。
from functools import reduce
def f(x, y):
 return x + y

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

sorted()函數 對所有可迭代的對象進行排序操作。

sort 與 sorted 區別:

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

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

a = sorted([5, 2, 3, 1, 4],reverse=True)
print(a)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章