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式を実装する必要があります。
lambdaキーワードを使用してlambda式を定義します。- lambda式は1つのパラメータ(
price)を受け取ります。 priceが負の場合は無効とみなし、lambda式内で直接max()関数を使って0を返します。- lambda式は最初に価格をチェックし、その後有効な金額から13%を控除します。
- リスト内包表記を使って、
apply_taxをpricesの各要素に適用します。
解答
フィードバックありがとうございます!
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください