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関数を使用してください。
コメント