1. Learn
  2. /
  3. Courses
  4. /
  5. Pythonの関数入門

Connected

Exercise

Map() とラムダ関数

これまでに、ラムダ関数を使って短くシンプルな関数を書いたり、単純な機能を持つ関数を再定義したりしてきました。とはいえ、ラムダ関数の真価は、こうした簡単な処理を、より大きな式の中に匿名で埋め込みたいときに発揮されます。つまり、def で定義した関数と違って、その機能自体は環境に保存されません。この考え方を理解するために、ここでは map() 関数の文脈でラムダ関数を使います。

動画で見たように、map() はリストなどのオブジェクトに対して関数を適用します。ここでは、map() がオブジェクトを処理する際に使う関数を、ラムダ関数で定義できます。例えば、次のようになります。

nums = [2, 4, 6, 8, 10]

result = map(lambda a: a ** 2, nums)

この例では、値 a を 2 乗するラムダ関数を、数値のリスト nums と一緒に map() に渡しています。map() の呼び出しから得られる map オブジェクト は result に保存されます。ここからは、map() とあわせてラムダ関数を使う練習をします。この演習では、前の演習で定義した add_bangs() 関数の機能を、文字列のリストに対して適用していきます。

Instructions

100 XP
  • map() の呼び出しで、文字列 item に文字列 '!!!' を連結するラムダ関数と、文字列のリスト spells を渡してください。結果のマップオブジェクトを shout_spells に代入します。
  • shout_spells をリストに変換し、そのリストを出力してください。