ラムダ関数

開発者向け中級 Python

Jasmin Ludolf

Senior Data Science Content Developer

単関数

def average(values):
    average_value = sum(values) / len(values)
    return average_value
開発者向け中級 Python

ラムダ関数

  • lambda キーワード
    • 無名関数 を表す
lambda
開発者向け中級 Python

ラムダ関数

  • lambda キーワード
    • 無名関数 を表す
lambda arguments
開発者向け中級 Python

ラムダ関数

  • lambda キーワード
    • 無名関数 を表す
lambda arguments:
開発者向け中級 Python

ラムダ関数

  • lambda キーワード
    • 無名関数 を表す

$$

lambda arguments: expression
  • 慣例として、単一の引数にはxを使用
  • expression:関数本体に相当
  • returnの記述は不要

$$

  • 変数として保存可能
開発者向け中級 Python

ラムダ関数の作成

# Lambda average function
print(lambda x: sum(x) / len(x))



<function <lambda> at 0x7f11ab813d80>
# Custom average function
def average(x):
    return sum(x) / len(x)  

print(average)
<function average at 0x7f11ab813ec0>
開発者向け中級 Python

ラムダ関数を使用する

# Get the average
(lambda x: sum(x) / len(x))
開発者向け中級 Python

ラムダ関数を使用する

# Get the average
(lambda x: sum(x) / len(x))([3, 6, 9])

$$

$$

# Print the average
print((lambda x: sum(x) / len(x))([3, 6, 9]))
6.0
開発者向け中級 Python

ラムダ関数の保存と呼び出し

# Store lambda function as a variable
average = lambda x: sum(x) / len(x)

# Call the average function print(average([3, 6, 9]))
6.0
開発者向け中級 Python

複数のパラメータ

# Lambda function with two arguments
power = lambda x, y: x**y


# Raise 2 to the power of 3 print(power(2, 3))
8
開発者向け中級 Python

イテラブルを用いたラムダ関数

  • map():イテラブル内のすべての要素に関数を適用する
names = ["john", "sally", "leah"]

# Apply a lambda function inside map() capitalize = map(lambda x: x.capitalize(), names)
print(capitalize)
<map object at 0x7fb200529c10>
# Convert to a list
print(list(capitalize))
['John', 'Sally', 'Leah']
開発者向け中級 Python

カスタム関数 vs. ラムダ関数

シナリオ 関数の種類
複雑な処理 カスタム関数
同じ処理を複数回 カスタム関数
1回のみの処理 ラムダ関数
単純な処理 ラムダ関数
開発者向け中級 Python

練習しましょう!

開発者向け中級 Python

Preparing Video For Download...