「プログラミングを勉強し始めたけれど、def とか return とか、記述が長くなると何を書いているのかわからなくなる…」
そんなふうに感じたことはありませんか?
わずか数行の計算や特定の一箇所でしか使わない処理のために、毎回関数名を考えて定義するのは意外と負担になるものですよね。Pythonには、このようなちょっとした処理を1行で簡潔に記述できるラムダ式(lambda)という便利な機能があります。
今回は、ラムダ式の基本的な書き方から、事務処理や実務で特に役立つリストのソート(並べ替え)での具体的な活用法まで、分かりやすく解説します。
使い所を押さえることで、コードの見通しが一段と良くなり、効率的なスクリプト作成が可能になります!
ラムダ式の基本と特徴
ラムダ式とは、一言で表すと名前を付けずにその場で定義して使用する無名関数の作成機能になります。
通常の関数定義(def)をしっかりとした手順書や申請書類に例えるなら、ラムダ式は机の上にサッと貼る付箋メモのようなものです。
後から何度も呼び出す必要のない単発の処理や、その場限りの簡単な計算をスマートに行いたい場面で使います。
通常の関数定義とラムダ式の比較
記述量の違いを理解するために、実務でよく見られる税込価格(消費税10%)の計算を例に比較してみます。
def文を用いた通常の書き方
通常の関数定義では、以下のように3行程度のコードが必要になります。
# 通常の関数定義
def add_tax(price):
return price * 1.1
print(add_tax(1000))
# 結果: 1100.0
ラムダ式を用いた書き方
同じ処理をラムダ式で表現すると、以下のようにわずか1行で記述できます。
# ラムダ式による記述
add_tax = lambda price: price * 1.1
print(add_tax(1000))
# 結果: 1100.0
ラムダ式の基本構文は「lambda 引数: 式(処理結果)」という構成です。
return文を明示的に記述しなくても式の評価結果が自動的に戻り値となるため、コード全体がスッキリまとまります。
実務で役立つラムダ式の活用例 データの並べ替え
「でも、これだけなら普通に計算式を書けばいいのでは?」
そう思われたかもしれません。
ラムダ式の本領を発揮するのは、単体の計算処理よりも「他の関数の引数として処理条件を渡す」場面です。
特に実務のデータ処理では、辞書型データを含むリストの並べ替え(ソート)で重宝されます。例えば、社員名簿データがあり、年齢順に並べ替えたいケースを考えてみましょう。
# 社員名簿リスト
staff_list = [
{'name': '田中', 'age': 25},
{'name': '佐藤', 'age': 40},
{'name': '鈴木', 'age': 22}
]
# ラムダ式を活用してage(年齢)を基準に昇順ソート
sorted_list = sorted(staff_list, key=lambda x: x['age'])
print(sorted_list)
# 実行結果:
# [{'name': '鈴木', 'age': 22}, {'name': '田中', 'age': 25}, {'name': '佐藤', 'age': 40}]
sorted関数の引数keyに対して lambda x: x[‘age’] を渡すことで、「各要素を受け取り、その辞書のageの値を比較基準にする」という指示をその場でシンプルに指定できます。
わざわざこのためだけにdef関数を定義する必要がなくなるため、コードの可読性と保守性が向上します。
ラムダ式を扱う際の注意点と使い分け
ラムダ式はコード行数を削減できる記法ですが、どのような場面でも多用すればよいというわけではありません。
ラムダ式の内部には1つの式しか書けない仕様になっているため、条件分岐が複雑な処理や複数行に及ぶロジックを無理に詰め込もうとすると、かえって可読性を損ねてしまいます。
- 単純な1行の計算や、sorted関数・map関数などの引数に直接渡す場合は、ラムダ式が最適
- 複数行の処理や、複数箇所から何度も呼び出す場合は、通常のdef文が最適
このように適材適所で使い分けることが、保守しやすいPythonコードを書くためのポイントになります。ぜひ取り入れてみてください!
Pythonの本は種類が多すぎて、業務効率化に使えるのか見分けるのが大変ですよね。実務自動化に5年以上携わってきた私が、「デスクワークの自動化に即戦力になった本」を厳選して紹介します。失敗しない1冊を見つけたい方は、ぜひ参考にしてみてください。


コメント