先頭を大文字に1
l = ['Apple', 'banana', 'orange', 'Strawberry', 'cherry']
def change_words(func, words):
for word in words:
print(func(word))
def capit_func(word):
return word.capitalize()
change_words(capit_func, l)
先頭を大文字に1の実行結果
Apple
Banana
Orange
Strawberry
Cherry
capi_func関数は、引数wordの先頭を大文字にする関数である。
これをlambdaを使えば、コード量を減らすことができる。
先頭を大文字に2
l = ['Apple', 'banana', 'orange', 'Strawberry', 'cherry']
def change_words(func, words):
for word in words:
print(func(word))
capit_func = lambda word: word.capitalize()
change_words(capit_func, l)
わざわざ、
capit_funcを定義しないで、
change_words関数の引数に直接書く事も可能で、
更にコード量を減らすことが可能である。
先頭を大文字に3
l = ['Apple', 'banana', 'orange', 'Strawberry', 'cherry']
def change_words(func, words):
for word in words:
print(func(word))
change_words(lambda word: word.capitalize(), l)
このlambdaは、
ファンクションがcapit_func関数だけでなく、
複数ファンクションが必要な場合に威力を発揮する。
複数ファンクション
l = ['Apple', 'banana', 'orange', 'Strawberry', 'cherry']
def change_words(func, words):
for word in words:
print(func(word))
change_words(lambda word: word.capitalize(), l)
change_words(lambda word: word.lower(), l)
複数ファンクションの実行結果
Apple
Banana
Orange
Strawberry
Cherry
apple
banana
orange
strawberry
cherry
もし、
lambdaを使わなかったら、
複数ファンクション2
l = ['Apple', 'banana', 'orange', 'Strawberry', 'cherry']
def change_words(func, words):
for word in words:
print(func(word))
def capit_func(word):
return word.capitalize()
def low_func(word):
return word.lower()
change_words(capit_func, l)
change_words(low_func, l)
と書かねばならない。
capit_func関数とlow_func関数の2つの関数を定義する事が必要となる。