Python のラムダ関数の活用 - filter()

PySparkで学ぶBig Data入門

Upendra Devisetty

Science Analyst, CyVerse

Python の無名関数とは?

  • ラムダ関数は Python の無名関数です

  • 強力でよく使われる。map() や filter() と相性が良い

  • def と同様に、後で呼び出す関数を作れる

  • 名前なしで関数を返す(無名)

  • 関数定義をインライン化、または実行を遅延させるのに使う

PySparkで学ぶBig Data入門

ラムダ関数の構文

  • ラムダ関数の一般形
lambda arguments: expression
  • ラムダ関数の例
double = lambda x: x * 2
print(double(3))
6
PySparkで学ぶBig Data入門

def と lambda の違い

  • 数の立方を示す Python コード
def cube(x): 
     return x ** 3
g = lambda x: x ** 3
print(g(10)) 
print(cube(10))
1000
1000
  • ラムダには return 文がない

  • ラムダ関数はどこにでも書ける

PySparkで学ぶBig Data入門

Python のラムダ関数の活用 - map()

  • map() は関数を入力リストの全要素に適用する

  • map() の一般構文

map(function, list)
  • map() の例
items = [1, 2, 3, 4]
list(map(lambda x: x + 2 , items))
[3, 4, 5, 6]
PySparkで学ぶBig Data入門

Python のラムダ関数の活用 - filter()

  • filter() は関数とリストを受け取り、関数が真と判定した要素の新しいリストを返す

  • filter() の一般構文

filter(function, list)
  • filter() の例
items = [1, 2, 3, 4]
list(filter(lambda x: (x%2 != 0), items))
[1, 3]
PySparkで学ぶBig Data入門

Let's practice

PySparkで学ぶBig Data入門

Preparing Video For Download...