Cơ bảncluster

Lambda function trong Python: Cú pháp và cách dùng

8 phút đọc1 lượt xem
#lambda python#lambda function python#hàm lambda python#anonymous function python

Lambda function trong Python: Cú pháp và cách dùng

Khi học Python, bạn sẽ sớm gặp từ khóa lambda — một cách viết hàm ngắn gọn chỉ trong một dòng. Lambda function còn được gọi là hàm vô danh (anonymous function) vì nó không cần tên. Trong bài viết này, chúng ta sẽ tìm hiểu lambda là gì, cú pháp ra sao, và khi nào nên dùng.

Lambda function trong Python là gì?

Lambda function là một hàm nhỏ, không có tên, được định nghĩa chỉ trong một dòng code. Tên "lambda" bắt nguồn từ Lambda Calculus — nền tảng toán học của lập trình hàm (functional programming).

Điểm đặc biệt của lambda:

  • Viết gọn trong 1 dòng
  • Chỉ chứa 1 biểu thức (expression), kết quả được tự động return
  • Không có tên — thường dùng trực tiếp làm tham số cho hàm khác
  • first-class function: có thể gán vào biến, truyền làm đối số, trả về từ hàm

Nếu bạn chưa biết Python là gì, hãy đọc bài Python là gì? Tổng quan cho người mới bắt đầu trước nhé.

Cú pháp cơ bản của lambda function

Cú pháp lambda rất đơn giản:

lambda <tham_số>: <biểu_thức>
# Lambda cộng hai số
add = lambda x, y: x + y
print(add(3, 5))   # 8
print(add(10, 20)) # 30

# Lambda không có tham số
greet = lambda: "Xin chào Python!"
print(greet())  # Xin chào Python!

# Lambda với điều kiện inline
check_age = lambda age: "Người lớn" if age >= 18 else "Trẻ em"
print(check_age(20))  # Người lớn
print(check_age(15))  # Trẻ em

So sánh lambda và def: Khác nhau ở đâu?

# Dùng def — truyền thống
def square_def(x):
    return x ** 2

# Dùng lambda — gọn hơn
square_lambda = lambda x: x ** 2

print(square_def(5))    # 25
print(square_lambda(5)) # 25

Tìm hiểu thêm về hàm trong Python tại bài viết Hàm (function) trong Python: Hướng dẫn từ A đến Z.

Kết hợp lambda với map(), filter(), sorted()

numbers = [1, 2, 3, 4]
doubled = list(map(lambda x: x * 2, numbers))
print(doubled)  # [2, 4, 6, 8]

evens = list(filter(lambda x: x % 2 == 0, numbers))
print(evens)  # [2, 4]

data = [{"name": "Python", "score": 90}, {"name": "JS", "score": 85}]
sorted_data = sorted(data, key=lambda x: x["score"], reverse=True)
print(sorted_data)  # [{"name": "Python", "score": 90}, {"name": "JS", "score": 85}]

Để hiểu sâu hơn về list trong Python, đọc bài List trong Python: Tất cả những gì bạn cần biết.

Khi nào nên dùng lambda? Khi nào không nên?

# KHÔNG NÊN: lambda phức tạp, khó đọc
process = lambda x: x**2 if x > 0 else -x if x < 0 else 0

# NÊN: dùng def cho logic phức tạp
def process(x):
    """Xử lý số: dương thì bình phương, âm thì lấy giá trị tuyệt đối, 0 giữ nguyên."""
    if x > 0:
        return x ** 2
    elif x < 0:
        return -x
    else:
        return 0

Tổng kết và bước tiếp theo

  • Lambda function là hàm vô danh, viết gọn trong 1 dòng, 1 biểu thức
  • Cú pháp: lambda tham_số: biểu_thức (không cần return)
  • lambda khác def ở chỗ: ngắn gọn hơn nhưng bị giới hạn hơn
  • Dùng tốt nhất với: map(), filter(), sorted()
  • Với logic phức tạp, luôn ưu tiên def

Về tác giả

Ảnh đại diện tác giả Kenji — họa tiết hình học

Kenji

Kỹ sư phần mềm full-stack (Web), hơn 5 năm kinh nghiệm thực tế

  • Python
  • DB
  • Hạ tầng
  • Đào tạo & cố vấn
  • AI

Làm việc cùng đồng nghiệp người Việt, tôi thấy thiếu tài liệu kỹ thuật rõ ràng bằng tiếng Việt. codeahoc là nơi tôi chia sẻ theo hướng thực tế, dễ áp dụng.

Nguyên tắc nội dung

  • Ưu tiên nguồn gốc và góc nhìn từ thực tế triển khai.
  • Nếu có sai sót, nội dung sẽ được cập nhật và sửa kịp thời.

Khóa học liên quan

100 Days of Code: The Complete Python Pro Bootcamp

Học Python qua 100 dự án thực tế. Phù hợp cho người mới bắt đầu.

4.7499.000 ₫
Xem khóa học →

Python for Data Science and Machine Learning Bootcamp

Học Data Science với Python: pandas, matplotlib, scikit-learn.

4.6499.000 ₫
Xem khóa học →

Automate the Boring Stuff with Python

Tự động hóa công việc lặp đi lặp lại bằng Python.

4.6399.000 ₫
Xem khóa học →
Quảng cáo