single
ラムダ関数
メニューを表示するにはスワイプしてください
ラムダ関数は無名関数であり、名前を持ちません。lambda キーワードを使って作成され、その場で短い関数を定義したい場合によく利用されます。
ラムダ関数の基本構文は次のとおりです:
lambda arguments: expression
lambda: ラムダ関数定義の開始を示すキーワード;arguments: 関数が受け取る引数のリスト;expression: 関数が呼び出されたときに実行される式。この式の結果が関数の戻り値となります。
ラムダ関数の主な特徴は、その簡潔な構文です。多くのコードを書かずにシンプルな関数を定義したい場合に便利です。
単一引数と複数引数
ラムダ関数は1つまたは複数の引数を受け取ることができます:
1234567# Single argument square = lambda x: x**2 print(square(5)) # 25 # Multiple arguments add = lambda x, y: x + y print(add(3, 5)) # 8
ラムダ関数における条件付きロジック
ラムダ内で条件付きロジックを追加するには、三項式を使用可能。
123is_even = lambda x: "even" if x % 2 == 0 else "odd" print(is_even(4)) # "even" print(is_even(7)) # "odd"
組み込み関数とラムダの併用
よくあるユースケースは、map() や filter() などの組み込み関数とラムダ関数を組み合わせること。
123456789prices = [100, 200, 300] # Apply 10% discount to each price discounted = list(map(lambda price: price * 0.9, prices)) print(discounted) # [90.0, 180.0, 270.0] # Keep only prices above 150 expensive = list(filter(lambda price: price > 150, prices)) print(expensive) # [200, 300]
max() を lambda 内で使用することで、式の中で直接エッジケースを処理することも可能:
123safe_value = lambda x: max(x, 0) # Returns 0 if x is negative print(safe_value(-5)) # 0 print(safe_value(10)) # 10
max(a, b) 関数は2つの数値を比較し、大きい方を返します。変数と0を組み合わせて使用する(例: max(x, 0))ことで、負の数に対するセーフティネットとして機能します。
-
x が正の場合(例: 100)、
max(100, 0)は 100 を返します。100 は 0 より大きいためです。 -
x が負の場合(例: -50)、
max(-50, 0)は 0 を返します。0 は -50 より大きいためです。
これにより、負の値や無効な値を即座に0にする場合、複雑な if-else 文を使う必要がなくなります。
ラムダ関数は短く、単一の式で完結するロジックに最適です。複数行や複雑なロジックが必要な場合は、通常の def 関数の方が適しています。
スワイプしてコーディングを開始
価格のリスト(prices)があり、価格をパラメータとして受け取り、そこから13%の税金を差し引くためのラムダ式を実装する必要があります。
lambdaキーワードを使用してラムダ式を定義します。- ラムダ式は1つのパラメータ(
price)を受け取ります。 priceが負の場合は無効とみなし、ラムダ式内で直接max()関数を使って0を返します。- ラムダはまず価格をチェックし、その後有効な金額から13%を差し引きます。
- リスト内包表記を使って
apply_taxをpricesの各要素に適用します。
解答
フィードバックありがとうございます!
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください