Python3 エンジニア認定基礎試験 練習問題 Day20:ラムダ式(無名関数)

【本日のミッション】

Day19では「ネスト関数(関数の中の関数)」を学びました。

今日は少し名前が難しく聞こえる ラムダ式(無名関数)を学びます。

「いきなりラムダ式はむずかしい…」と感じる人がとても多い内容です。

そこでこの記事では、

  • まず 通常の関数 をしっかり確認

  • 次に 同じ処理をラムダ式で書く

  • 「何が違うのか」「いつ使うのか」を丁寧に説明

という流れで進めます。


通常の関数の復習

これまで学んできた関数は、次の形でしたね。

def add(x, y):
    return x + y

処理の流れを確認

  1. def add(x, y):

    • add という 名前の関数 を作る

    • 引数は x と y

  2. return x + y

    • x と y を足した結果を返す

実行

print(add(3, 5))

出力結果

8

関数は「名前をつけて」「何度も使える」処理 でしたね。

ラムダ式(無名関数)とは?

ラムダ式は、名前をつけずに、その場で使う小さな関数です。

「無名関数」と呼ばれる理由もここにあります。


通常の関数とラムダ式の比較

先ほどの add 関数を、ラムダ式で書き直すとこうなります。

add_lambda = lambda x, y: x + y

実行

print(add_lambda(3, 5))

出力結果

8

ラムダ式の書き方を分解して理解しよう

lambda x, y: x + y

これは次の意味です。

  • lambda :ラムダ式を使いますよ、という合図

  • x, y :引数(関数に渡す値)

  • : :ここから処理内容

  • x + yこの結果が自動的に return される

ラムダ式には return は書きません

通常の関数とラムダ式の違いまとめ

項目 通常の関数 ラムダ式
名前 必要 不要(無名)
書き方 複数行 1行のみ
return 必要 書かない
向いている処理 複雑・長い処理 シンプルな処理

関数の引数に使う(ここが試験で重要)

まずは通常の関数を使った例

numbers = [5, 2, 9, 1]

# 通常の関数
def get_key(x):
    return x

print(sorted(numbers, key=get_key))

出力結果

[1, 2, 5, 9]

何をしているのか?

  • sorted() は並び替えをする関数

  • key には 並び替えの基準となる関数 を指定

  • 今回は「そのままの値」を返している

同じ処理をラムダ式で書く

print(sorted(numbers, key=lambda x: x)) 

出力結果

[1, 2, 5, 9]

なぜラムダ式が便利?

  • 1回しか使わない関数のために

  • わざわざ def で名前を付けなくていい

「その場限りの関数」=ラムダ式

練習問題

次のコードを実行するとどうなるでしょうか?

multiply = lambda a, b=2: a * b

print(multiply(3))
print(multiply(3, 4))

選択肢

A)

6
12

B)

3
12

C)

エラーになる

D)

6
3

Python3 エンジニア認定基礎試験 練習問題 Day20:ラムダ式(無名関数)

解答

A)

6
12

■■■スポンサーリンク■■■

解説

lambda a, b=2: a * b

これは次の意味です。

  • 引数 a

  • 引数 b(デフォルト値は 2

  • a と b を掛け算する

print(multiply(3))
  • a = 3

  • b は省略 → デフォルト値 2

  • 3 × 2 = 6
print(multiply(3, 4))
  • a = 3

  • b = 4(上書き)

  • 3 × 4 = 12

👉 正解は

A)

6
12

✅ ポイント

  • ラムダ式は lambda 引数: 式 の形で定義する

  • return は書かない(式の結果が返る)
  • 一行でシンプルな関数を書くときに便利

  • デフォルト引数やキーワード引数も利用可能

  • 主に次の場面で使われる
    • sorted()

    • map()

    • filter()

  • 複雑な処理にはdef を使う(読みづらくなるため)


次回予告

Day21では 「組み込み関数(len, type, range など)」 を学びます。
試験に頻出する標準関数の使い方を整理しましょう!


参考

Python 3 エンジニア認定基礎試験 – Odyssey CBT
Python3 エンジニア認定基礎試験 出題範囲と学習プラン
Python3 エンジニア認定基礎試験 練習問題 Day1:変数の基本
Python3 エンジニア認定基礎試験 練習問題 Day2:変数の型(int型とstr型)
Python3 エンジニア認定基礎試験 練習問題 Day3:算術演算子と代入演算子
Python3 エンジニア認定基礎試験 練習問題 Day4:文字列の操作
Python3 エンジニア認定基礎試験 練習問題 Day5:比較演算子と論理演算子
Python3 エンジニア認定基礎試験 練習問題 Day6:if文(条件分岐)
Python3 エンジニア認定基礎試験 練習問題 Day7:ループ処理(for文・while文)
Python3 エンジニア認定基礎試験 練習問題 Day8:break文とcontinue文
Python3 エンジニア認定基礎試験 練習問題 Day9:リスト(list)の基本
Python3 エンジニア認定基礎試験 練習問題 Day10:リストの操作(append,remove,len など)
Python3 エンジニア認定基礎試験 練習問題 Day11:リストのスライス(部分取り出し)
Python3 エンジニア認定基礎試験 練習問題 Day12:タプル(tuple)の基本
Python3 エンジニア認定基礎試験 練習問題 Day13:辞書(dict)の基本
Python3 エンジニア認定基礎試験 練習問題 Day14:集合(set)の基本
Python3 エンジニア認定基礎試験 練習問題 Day15:関数の定義と呼び出し
Python3 エンジニア認定基礎試験 練習問題 Day16:関数のデフォルト引数とキーワード引数
Python3 エンジニア認定基礎試験 練習問題 Day17:可変長引数(*args, **kwargs)
Python3 エンジニア認定基礎試験 練習問題 Day18:関数のスコープ(ローカル変数とグローバル変数)
Python3 エンジニア認定基礎試験 練習問題 Day19:ネスト関数(関数の中の関数)
Python3 エンジニア認定基礎試験 練習問題 Day20:ラムダ式(無名関数)
Python3 エンジニア認定基礎試験 練習問題 Day21:組み込み関数(len, type, range など)
Python3 エンジニア認定基礎試験 練習問題 Day22:組み込み関数(sum,max,min,sorted)
Python3 エンジニア認定基礎試験 練習問題 Day23:文字列と組み込み関数(len,str,int,float)
Python3 エンジニア認定基礎試験 練習問題 Day24:組み込み関数(abs, round, pow)
Python3 エンジニア認定基礎試験 練習問題 Day25:組み込み関数(sorted の応用と key 引数)
Python3 エンジニア認定基礎試験 練習問題 Day26:組み込み関数(enumerate, zip)
Python3 エンジニア認定基礎試験 練習問題 Day27:組み込み関数(map, filter, reduce)
Python3 エンジニア認定基礎試験 練習問題 Day28:組み込み関数(any, all)
Python3 エンジニア認定基礎試験 練習問題 Day29:組み込み関数(isinstance,issubclass)
Python3 エンジニア認定基礎試験 練習問題 Day30:組み込み関数(callable, eval)
Python3 エンジニア認定基礎試験 練習問題 Day31:組み込み関数(dir, help)
Python3 エンジニア認定基礎試験 練習問題 Day32:組み込み関数(id, hash)
Python3 エンジニア認定基礎試験 練習問題 Day33:組み込み関数(repr, format)
Python3 エンジニア認定基礎試験 練習問題 Day34:組み込み関数(globals, locals)
Python3 エンジニア認定基礎試験 練習問題 Day35:組み込み関数(vars, callable)
Python3 エンジニア認定基礎試験 練習問題 Day36:組み込み関数(reversed, slice)
Python3 エンジニア認定基礎試験 練習問題 Day37:組み込み関数(getattr, setattr, hasattr, delattr)
Python3 エンジニア認定基礎試験 練習問題 Day38:組み込み関数(eval, exec, compile)
Python3 エンジニア認定基礎試験 練習問題 Day39:組み込み関数(zip の応用・辞書との組み合わせ)
Python3 エンジニア認定基礎試験 練習問題 Day40:モジュールの基本(import と from の違い)
Python3 エンジニア認定基礎試験 練習問題 Day41:as(別名インポート)と import の仕組み
Python3 エンジニア認定基礎試験 練習問題 Day42:標準ライブラリ(math モジュールの基本)
Python3 エンジニア認定基礎試験 練習問題 Day43:標準ライブラリ(random モジュールの活用)
Python3 エンジニア認定基礎試験 練習問題 Day44:標準ライブラリ(datetime モジュールの使い方)
Python3 エンジニア認定基礎試験 練習問題 Day45:標準ライブラリ(os と sys)

■■■スポンサーリンク■■■