Pythonにおけるラムダ演算子(lambda)とmap関数は、データ処理を簡潔かつ効率的に記述するために非常に強力な組み合わせです。それぞれ個別の機能と、それらを組み合わせた使い方を解説します。
1. ラムダ演算子(lambda)とは
lambdaは、名前を持たない小さな関数(無名関数)を定義するための構文です。
通常の関数定義(def)と異なり、一行で記述できるのが特徴です。
構文: lambda 引数: 式
特徴: * 関数オブジェクトを返す。
式は一つだけ記述でき、その結果が戻り値となる。
使用例:
Python
# 2倍にする関数
double = lambda x: x * 2
print(double(5)) # 出力: 10
2. map関数とは
map関数は、リストやタプルなどのイテラブル(繰り返し可能オブジェクト)の全要素に対して、特定の関数を適用するための関数です。
構文: map(関数, イテラブル)
特徴: * 実行結果として「mapオブジェクト(イテレータ)」を返す。
リストとして扱いたい場合は、list()関数で変換が必要。
3. lambdaとmapの組み合わせ(具体的な使い方)
これらを組み合わせることで、「リストの各要素を変換する」という処理を非常に短く記述できます。
基本例:リストの全要素を2倍にする
Python
nums = [1, 2, 3, 4, 5]
# map(lambda x: x * 2, nums) で全要素を2倍にする
result = list(map(lambda x: x * 2, nums))
print(result) # 出力: [2, 4, 6, 8, 10]
応用例:条件付きの変換
例えば、リスト内の数値を「偶数なら2倍、奇数ならそのまま」にする場合も一行で書けます。
Python
nums = [1, 2, 3, 4, 5]
result = list(map(lambda x: x * 2 if x % 2 == 0 else x, nums))
print(result) # 出力: [1, 4, 3, 8, 5]
まとめ:いつ使うべきか?
mapとlambdaの組み合わせは、PythonのコードをPythonらしく記述する(Pythonicなコード)際によく使われるテクニックです。最初は少し独特な書き方に感じるかもしれませんが、慣れるとデータ処理の記述量が劇的に減るため、ぜひ活用してみてください。
0 件のコメント:
コメントを投稿