Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ ラムダ関数 | 再帰とラムダ関数
Python関数チュートリアル
セクション 5.  4
single

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

ラムダ関数における条件付きロジック

ラムダ内で条件付きロジックを追加するには、三項式を使用可能。

123
is_even = lambda x: "even" if x % 2 == 0 else "odd" print(is_even(4)) # "even" print(is_even(7)) # "odd"

組み込み関数とラムダの併用

よくあるユースケースは、map()filter() などの組み込み関数とラムダ関数を組み合わせること。

123456789
prices = [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 内で使用することで、式の中で直接エッジケースを処理することも可能:

123
safe_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 文を使う必要がなくなります。

ラムダ
Note
注意

ラムダ関数は短く、単一の式で完結するロジックに最適です。複数行や複雑なロジックが必要な場合は、通常の def 関数の方が適しています。

タスク

スワイプしてコーディングを開始

価格のリストprices)があり、価格パラメータとして受け取り、そこから13%の税金を差し引くためのラムダ式を実装する必要があります。

  1. lambdaキーワードを使用してラムダ式を定義します。
  2. ラムダ式1つのパラメータprice)を受け取ります。
  3. priceが負の場合は無効とみなし、ラムダ式内で直接max()関数を使って0を返します
  4. ラムダはまず価格をチェックし、その後有効な金額から13%を差し引きます
  5. リスト内包表記を使ってapply_taxprices各要素に適用します。

解答

Switch to desktop実践的な練習のためにデスクトップに切り替える下記のオプションのいずれかを利用して、現在の場所から続行する
すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 5.  4
single

single

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

some-alt