Lambda functions là anonymous one-line functions tạo tại runtime, không gắn với tên hàm.
Cú pháp
lambda arguments: expression
Ví dụ cơ bản
add = lambda x, y: x + y
print(add(4, 6)) # 10
Các trường hợp sử dụng phổ biến
1. Key function cho sorted/min/max
students = [('Alice', 85), ('Bob', 92), ('Carol', 78)]
sorted_by_score = sorted(students, key=lambda s: s[1], reverse=True)
# [('Bob', 92), ('Alice', 85), ('Carol', 78)]
2. Map/Filter (functional style)
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers)) # [1, 4, 9, 16, 25]
evens = list(filter(lambda x: x % 2 == 0, numbers)) # [2, 4]
3. Closure factory
def make_multiplier(n):
return lambda x: x * n
double = make_multiplier(2)
triple = make_multiplier(3)
print(double(5)) # 10
print(triple(5)) # 15
Lưu ý
- Không gán lambda cho biến trong production code (PEP 8 khuyên dùng
def). - Khó debug (traceback không hiện tên hàm).
- Không chứa docstring, type hints.