匿名関数
- 関数を定義するためにdefを使用する必要はありません
- 特定の名前なし
- ラムダを使用して関数を定義する
- 文法構造:ラムダpar1、par2、... parn:式
例
#冒号前面是参数,冒号后面是表达式,也是所要返回的结果
g = lambda x:x**2
g(2)
マップ機能
map()メソッドは、関数をシーケンスの各要素にマップして、すべての関数の戻り値を含む新しいシーケンスを生成します。大まかに言えば、シーケンスの各要素はx変数として扱われ、関数f(x)に入れられます。結果は、f(x1)、f(x2)、f(x3)...の新しいシーケンスになります。
- map関数はイテレータを返します
- メソッドの呼び出し:
map(function、list_input)
関数は関数を表します
list_inputは入力シーケンスを表します
例
#定义一个列表
items = [1,2,3,4,5,6]
def f(x):
return x**2
map(f,items)
list(map(f,items))
機能を減らす
定義:
反復シーケンス中に、最初の2つの要素(2つのみ)が関数に渡されます。関数が処理された後、結果と3番目の要素が2つのパラメーターとして関数に渡されます。類推すると、1-100の累積合計を求めるようなものです。
- reduce関数は組み込み関数ではないため、サードパーティのライブラリをインポートする必要があります
- 削減機能は直接使用できません
- 縮小(関数、反復可能)
関数:代表的な関数
反復可能:シーケンス
例
from functools import reduce
def f(x,y):
return x + y
items = [1,2,3,4,5,6,7,8,9,10]
result = reduce(f,items)
result
#求1-100累加和
items = range(1,101)
result = reduce(f,items)
result
フィルター機能
- シーケンスのフィルタリング、条件を満たさない要素の除外、および条件を満たす要素のシーケンスの返却に使用されます
- 関数はシーケンスの各アイテムに順番に適用されます。つまり、関数(アイテム)であり、戻り値がTrueであるアイテムはリスト/文字列/タプル(シーケンスのタイプによって異なります)を形成します
- Python3統合戻り反復子
例
filter(lambda x:x%2==0,range(21))
list(filter(lambda x:x%2==0,range(21)))
items = [1,2,3,4,'3263','chen','-34.56',45.8]
list(filter(lambda x:1 if isinstance(x,int)else 0,items))
または:
def int_num(x):
if isinstance(x,int):
return True
else:
return False
list(filter(int_num,items))