1. ホーム 
  2. 備忘録 
  3. Python

ラムダ式

ラムダ式(無名関数)について

ラムダ式(無名関数)とはその名の通り名前のない関数のことである

ラムダ式は関数の名前を付ける必要がない1行で終わるような関数を作るときに使用する

逆に式が複数行に跨る場合はラムダ式で記述できないので注意すること

ラムダ式を作るには lambda という書式を用いる


変数 = lambda 引数1, 引数2 : 式

具体的な書き方について以下に記載する


def change_words(words, func):
    for word in words:
        print(func(word), end=' ')


l = ['Mon', 'tue', 'Wed', 'Thu', 'fri', 'sat', 'Sun']

# 以下の関数はラムダ式に置き換えられる
# def sample_func(word):
#     return word.capitalize()
sample_func = lambda word: word.capitalize()
change_words(l, sample_func)  # Mon Tue Wed Thu Fri Sat Sun

# ラムダ式をそのまま引数として渡しても良い
change_words(l, lambda word: word.upper())  # MON TUE WED THU FRI SAT SUN
change_words(l, lambda word: word.lower())  # mon tue wed thu fri sat sun

# ラムダ式は引数を複数とることができる
calc_num = lambda a, b, c=3: (a + b) * c
print(calc_num(2, 5))  # 21

# ラムダ式で三項演算子を使う
get_odd_even = lambda x: 'even' if x % 2 == 0 else 'odd'
print(get_odd_even(3))  # odd
print(get_odd_even(4))  # even