【Python】map()関数とlambdaでリストの要素をすべて変更する – サンプルコード付

今回は無名関数lambda(ラムダ式)のより実践的な例として、組み込み関数map()とlambdaをあわせて使う方法を学びましょう。lambdaについてわからない場合はPython の無名関数 lambda(ラムダ式)の基本を参照ください。map()関数については公式ドキュメントを一読するのが良いでしょう。

実際のソースコードで学ぶ

組み込み関数map()と無名関数lambda(ラムダ式)とをあわせて使うと、リストの要素すべてを2倍する、(文字列要素を)一括置換する、といったようにリスト要素すべてに変更を加えたオブジェクトを取得することができます。

さてソースコードをみてみましょう。

 

forによるループ処理でも同様のことができますが、map() と lambda を使うと1行で簡潔(かつ柔軟)に書けることがわかります。そして何よりもmap()とlambdaのあわせ技を知っていないと他の人が書いたソースコードを読めずに困るかもしれないので、頭に入れておきましょう。

わかりやすさのためリストに限定しましたが、iterable なオブジェクトであればmap()関数が適用できます。

map(function, iterable, …)

注意事項

上記サンプルコード中のコメントにもあるように組み込み関数map()はPython2系と3系で返り値が異なり、互換性がありません。2系のコードを3系に移植する際にもこの知識が役に立つでしょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です