PR

Pythonのlambda関数完全ガイド | 簡潔で効率的なコーディング

Pythonのlambda関数完全ガイド | 簡潔で効率的なコードを書く

Pythonのlambda関数完全ガイド

簡潔で効率的なコードを書くための基礎から応用まで徹底解説!

Pythonのlambda関数とは?

Pythonのlambda関数(無名関数)は、一時的な用途に使われる小さな匿名関数です。名前を持たないため、特に簡単な処理に適しています。

  • 簡単な関数を1行で記述可能
  • 名前を付けずに使用可能
  • 他の関数やデータ構造と組み合わせて利用
# 基本構文
lambda 引数1, 引数2, ... : 式

基本的な使い方

例1: 数値を2倍にする

# lambdaを変数に代入
multiply_by_two = lambda x: x * 2
print(multiply_by_two(5))  # 出力: 10

例2: 複数の引数を持つlambda

# 2つの引数を加算
add = lambda x, y: x + y
print(add(3, 7))  # 出力: 10

例3: リスト内包表記と組み合わせ

numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
print(squared)  # 出力: [1, 4, 9, 16, 25]

lambda関数の応用例

例1: ソートのキーとして使用

students = [
    {"name": "Alice", "age": 25},
    {"name": "Bob", "age": 22},
    {"name": "Charlie", "age": 23}
]

students_sorted = sorted(students, key=lambda x: x['age'])
print(students_sorted)
# 出力: [{'name': 'Bob', 'age': 22}, {'name': 'Charlie', 'age': 23}, {'name': 'Alice', 'age': 25}]

例2: フィルタリング

numbers = [10, 15, 20, 25, 30]
filtered = list(filter(lambda x: x > 20, numbers))
print(filtered)  # 出力: [25, 30]

lambda関数の利点と注意点

  • 利点: 簡潔な記述が可能で、コードが読みやすくなる
  • 注意点: 複雑な処理には不向き。複雑なロジックは通常のdef関数を使用
  • 利点: 他の高階関数(例: map, filter)と相性が良い

よくある質問 (FAQ)

Q: lambda関数と普通の関数の違いは何ですか?

A: lambda関数は名前を持たない一時的な関数です。一方、通常の関数はdefを使用し、名前を持ち、複数行のコードを含むことができます。

Q: lambda関数をどこで使うべきですか?

A: 簡単な処理や一時的な用途で使用します。複雑なロジックや再利用が必要な場合はdef関数を使用してください。

次に読むべき記事

まとめ

Pythonのlambda関数は、簡潔で効率的なコードを記述するのに役立つ強力なツールです。本記事で紹介した基本から応用までの知識を活用して、効果的にlambda関数を使用してください。

© 2025 Pythonガイド – すべての権利を保有

コメント