Pythonのlambda式とは?意味をわかりやすく簡単に解説

Pythonのlambda式とは?意味をわかりやすく簡単に解説

公開: 更新:


lambda式とは

Pythonにおけるlambda式は、小さな無名関数を作成するための簡潔な方法です。通常の関数定義よりも短く一行で記述できるため、コードの可読性が向上します。lambda式は引数を受け取り、単一のを評価して結果を返す関数を定義するのに適しています。

lambda式の基本的な構文は「lambda 引数: 式」で、複数の引数を受け取ることも可能です。主に関数型プログラミングの概念を取り入れたコードや、短い処理を行う関数が必要な場面で重宝されます。

lambda式は高階関数(関数を引数として受け取ったり、関数を戻り値として返す関数)と組み合わせて使用されることがよくあります。高階関数にはmap()filter()などが挙げられます。また、リスト内包表記ソート時のキー関数としても活用されるのも特徴のひとつです。

「Python」を学べるコードキャンプのサービス

lambda式の活用と応用

lambda式の活用と応用について、以下3つを簡単に解説します。

  • lambda式を用いた関数の簡略化
  • 高階関数との組み合わせ
  • ソートにおけるlambda式の利用

lambda式を用いた関数の簡略化

lambda式は単純な処理を行う関数を簡潔に定義するのにぴったりです。たとえば二乗を計算する関数を通常の方法とlambda式で比較すると、コードの簡潔さが際立ちます。lambda式を使用することで一時的な使用や、短い処理に適した関数を簡単に作成できます。

# 通常の関数定義
def square(x):
    return x ** 2

# lambda式を使用した定義
square_lambda = lambda x: x ** 2

print(square(5))         # 出力: 25
print(square_lambda(5))  # 出力: 25

上記のコードは通常の関数定義とlambda式を用いた定義を比較している例です。lambda式を使用することで、同じ機能をより簡潔に表現できます。この方法は特に一度しか使用しない短い関数を定義する際に有効です。

lambda式は引数を複数取ることもでき、複数の値を処理する関数も簡単に作成できます。たとえば2つの数値の和を計算する関数をlambda式で定義すると、「add = lambda x, y: x + y」のようになります。このように、簡単な計算や処理を行う関数を短く定義できるのがlambda式の特徴です。

おすすめのPython研修一覧

Python研修を提供しているおすすめの企業・法人を一覧で掲載しております。

Python研修の一覧を見る

おすすめのDX研修一覧

DX研修を提供しているおすすめの企業・法人を一覧で掲載しております。

DX研修の一覧を見る

おすすめのJava研修一覧

Java研修を提供しているおすすめの企業・法人を一覧で掲載しております。

Java研修の一覧を見る

おすすめのJavaScript研修一覧

JavaScript研修を提供しているおすすめの企業・法人を一覧で掲載しております。

JavaScript研修の一覧を見る

高階関数との組み合わせ

lambda式はmap()やfilter()などの高階関数と組み合わせて使用されることが多く、データ処理を効率的に実行できます。たとえばリスト内の全ての要素を二倍にする処理や、偶数のみを抽出する処理などを簡潔に記述できます。これによりコードの可読性が向上し、処理の意図を明確化できるのです。

# map()とlambda式の組み合わせ
numbers = [1, 2, 3, 4, 5]
doubled = list(map(lambda x: x * 2, numbers))
print(doubled)  # 出力: [2, 4, 6, 8, 10]

# filter()とlambda式の組み合わせ
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # 出力: [2, 4]

上記のコードはmap()関数とlambda式を組み合わせて、リスト内の全ての要素を2倍にしている例です。また、filter()関数とlambda式を使用して偶数のみを抽出しています。これらの高階関数とlambda式の組み合わせにより、複雑なデータ処理を簡潔に記述できます。

さらにreduce()関数とlambda式を組み合わせることで、リストの要素を累積的に処理することも可能です。たとえばリスト内の全ての要素の積を計算する場合、「from functools import reduce」でreduce()をインポートして「reduce(lambda x, y: x * y, numbers)」のように使用できます。

ソートにおけるlambda式の利用

Pythonのsorted()関数やlist.sort()メソッドは、key引数を使用してソートの基準を指定できます。この際lambda式を使用することで、複雑なソート条件を簡潔に記述できます。たとえばタプルのリストを特定の要素でソートしたり、辞書のリストを特定のキーの値でソートしたりする際に便利です。

# タプルのリストをソート
people = [('Alice', 25), ('Bob', 30), ('Charlie', 22)]
sorted_by_age = sorted(people, key=lambda x: x[1])
print(sorted_by_age)  # 出力: [('Charlie', 22), ('Alice', 25), ('Bob', 30)]

# 辞書のリストをソート
students = [{'name': 'Alice', 'grade': 85}, {'name': 'Bob', 'grade': 92}, {'name': 'Charlie', 'grade': 78}]
sorted_by_grade = sorted(students, key=lambda x: x['grade'], reverse=True)
print(sorted_by_grade)  # 出力: [{'name': 'Bob', 'grade': 92}, {'name': 'Alice', 'grade': 85}, {'name': 'Charlie', 'grade': 78}]

上記のコードはlambda式を使用してタプルのリストを年齢でソートし、辞書のリストを成績で降順ソートしている例です。lambda式を用いることでソートの基準を柔軟に指定でき、複雑なデータ構造でも簡単にソートを行えます。この方法はデータ分析や情報を整理する上で効果的です。

また、lambda式を使用することで複数の条件でソートすることも可能です。たとえば「sorted(students, key=lambda x: (x['grade'], x['name']))」のように記述すると、まず成績でソートして成績が同じ場合は名前でソートするといった複雑な条件も簡潔に表現できます。

※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。

ITやプログラミングに関するコラム


ITやプログラミングに関するニュース

ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。

コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア 金融業界の業務効率化を加速するニッセイアセットマネジメントの生成AI×GAS活用研修事例 - IT・プログラミングを知って学べるコネクトメディア 【製造業のDX人材育成事例】デジタル人材の即戦力化を実現する、日本ガイシ株式会社の異動者向オンボーディング研修 - ITやプログラミングを知って学べるコネクトメディア フューチャーアーキテクト株式会社が実現した新入社員向けIT研修プログラムでタスクフォース制度が主体的な学びと成長を生み出す - IT・プログラミングを知って学べるコネクトメディア コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【IT新入社員研修】オンラインとオフラインの最適バランスを実現したFutureOneの導入事例 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【新入社員研修】柔軟なハイブリッド型Java研修で実現した新卒20名の成長と成果|サークレイス株式会社 - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/現場により近いところにデジタルを根付かせるDX基礎講座研修|株式会社ブリヂストン - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/業務の効率化・DX推進に向けたIT人材育成への第一歩|株式会社カナエ - ITやプログラミングを知って学べるコネクトメディア 企業・法人向けのIT・プログラミング研修 - ITやプログラミングを知って学べるコネクトメディア

新着記事

対象者別で探す

子供(小学生・中学生・高校生)向け
プログラミング教室検索する

子供(小学生・中学生・高校生)がロボットやプログラミング言語を学ぶことができるオフラインからオンラインスクールを検索、比較することが可能です。

子供(小学生・中学生・高校生)
プログラミング教室検索する

ITやプログラムなどの
最新情報を検索する

日々、新しいITやプログラミング言語の情報が流れていきますが、特定の情報を時系列でニュースやコラムを確認することができます。

ITやプログラムなどの
最新情報を検索する