Python 高階函式

2021-09-25 23:52:28 字數 1525 閱讀 6256

1、map

map()函式接收兩個引數,乙個是函式,乙個是iterablemap將傳入的函式依次作用到序列的每個元素,並把結果作為新的iterator返回

2、reduce

reduce把乙個函式作用在乙個序列[x1, x2, x3, ...]上,這個函式必須接收兩個引數,reduce把結果繼續和序列的下乙個元素做累積計算

3、filter

map()類似,filter()也接收乙個函式和乙個序列。和map()不同的是,filter()把傳入的函式依次作用於每個元素,然後根據返回值是true還是false決定保留還是丟棄該元素。

4、sorted

排序直接擼**:

from functools import reduce

def f(x):

return x * x

def func(x, y):

return x * 10 + y

def func2(x):

return x * 100

def is_odd(n):

return n % 2 == 1

def not_empty(s):

return s and s.strip()

# map 函式

r = list(map(f, range(10)))

print(r) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

r = list(map(lambda x: x * x + x, range(10)))

print(r) # [0, 2, 6, 12, 20, 30, 42, 56, 72, 90]

# reduce 函式

a = reduce(func, range(10))

print(a) # 123456789

a = reduce(func, map(func2, range(5)))

print(a) # 123400

# filter 函式

b = list(filter(is_odd, range(20)))

print(b) # [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

b = list(filter(not_empty, ['a', '', 'b', none, 'c', ' ']))

print(b) # ['a', 'b', 'c']

# sorted 函式

c = sorted([36, 5, -12, 9, -21], key=abs) # [5, 9, -12, -21, 36]

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...