Hàm Lambda trong Python – Giải Thích Đơn Giản và Dễ Hiểu

hướng dẫn học python tìm hiểu ngôn ngữ lập trình python nguyễn Đức mùi

Trong Python, hàm lambda là một loại hàm ẩn danh (không có tên). Nếu như ta dùng từ khóa def để khai báo một hàm thông thường, thì với hàm lambda, ta sử dụng từ khóa lambda để định nghĩa một hàm ngắn gọn và đơn giản.

Ví dụ dưới đây minh họa cách dùng lambda để chuyển đổi một chuỗi thành chữ in hoa bằng phương thức upper():

s1 = 'GeeksforGeeks'

s2 = lambda func: func.upper()
print(s2(s1))

Kết quả đầu ra:

GEEKSFORGEEKS

Hàm s2 được định nghĩa bằng lambda, nhận vào một chuỗi và chuyển đổi nó thành chữ in hoa. Sau đó, ta truyền chuỗi 'GeeksforGeeks' vào và in kết quả.


Cú pháp của Hàm Lambda trong Python

Cấu trúc:

lambda arguments: expression
  • lambda: Từ khóa khai báo hàm lambda.
  • arguments: Các tham số đầu vào (giống như hàm bình thường).
  • expression: Biểu thức trả về giá trị của hàm.

Ví dụ đơn giản:

square = lambda x: x ** 2
print(square(5))  # Kết quả: 25

Ứng Dụng Thực Tế Của Hàm Lambda

1. Hàm Lambda với Điều Kiện (if-else)

Hàm lambda có thể xử lý điều kiện bằng cách sử dụng if-else ngay trong biểu thức.

n = lambda x: "Dương" if x > 0 else "Âm" if x < 0 else "Không"
print(n(5))   # Dương
print(n(-3))  # Âm
print(n(0))   # Không

So Sánh Hàm lambda và Hàm Thông Thường (def)

Đặc điểmHàm LambdaHàm def
Định nghĩaNgắn gọn, chỉ có một dòngCó thể nhiều dòng
TênẨn danh (hoặc có tên nếu gán vào biến)Cần có tên
Chứa nhiều câu lệnhKhôngCó thể có nhiều câu lệnh
Tài liệu (docstring)Không thể cóCó thể có

Ví dụ so sánh:

# Dùng lambda
sq = lambda x: x ** 2
print(sq(3))  # Kết quả: 9

# Dùng def
def sqdef(x):
    return x ** 2
print(sqdef(3))  # Kết quả: 9

2. Hàm Lambda Kết Hợp với List Comprehension

li = [lambda x=x: x * 10 for x in range(1, 5)]
for i in li:
    print(i())

Kết quả:

10  
20  
30  
40  

3. Hàm Lambda với if-else

check = lambda x: "Chẵn" if x % 2 == 0 else "Lẻ"
print(check(4))  # Chẵn
print(check(7))  # Lẻ

4. Hàm Lambda Kết Hợp Nhiều Phép Toán

Mặc dù hàm lambda chỉ chứa một biểu thức, ta có thể trả về nhiều giá trị cùng lúc bằng cách sử dụng tuple.

calc = lambda x, y: (x + y, x * y)
res = calc(3, 4)
print(res)  # (7, 12)

5. Kết Hợp Hàm Lambda với Các Hàm filter(), map(), reduce()

a) Dùng filter() để lọc danh sách

nums = [1, 2, 3, 4, 5, 6]
even_nums = list(filter(lambda x: x % 2 == 0, nums))
print(even_nums)  # [2, 4, 6]

b) Dùng map() để biến đổi danh sách

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

c) Dùng reduce() để tính toán trên danh sách

from functools import reduce

nums = [1, 2, 3, 4]
product = reduce(lambda x, y: x * y, nums)
print(product)  # 24

Tổng Kết

  • Hàm lambda là một công cụ hữu ích giúp viết code ngắn gọn và nhanh chóng trong Python.
  • Có thể dùng lambda trong điều kiện, kết hợp với các hàm như filter(), map(), reduce(), hoặc dùng trong list comprehension.
  • Khi cần xử lý logic phức tạp hơn, ta nên dùng hàm thông thường (def) thay vì lambda.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

error: Content is protected !!
Hotline: 039.2266.928
Khóa học Toefl
Phone now