Rate this post

Hàm Lambda trong Python là hàm ẩn danh có nghĩa là hàm không có tên. Như chúng ta đã biết từ khóa def được sử dụng để định nghĩa một hàm thông thường trong Python. Tương tự, từ khóa lambda được sử dụng để xác định hàm ẩn danh trong Python.

Các bài viết liên quan:

Trong bài viết này, chúng ta sẽ tìm hiểu về các hàm lambda của Python với sự trợ giúp của các ví dụ.

Trong Python, hàm lambda là một loại hàm đặc biệt không có tên hàm. Ví dụ,

lambda : print('Hello World')

Trước khi bạn tìm hiểu về lambdas, hãy đảm bảo biết về Hàm Python.

Xem thêm list trong c++

Khai báo hàm lambda trong Python

Chúng tôi sử dụng từ khóa lambda thay vì def để tạo hàm lambda. Đây là cú pháp để khai báo hàm lambda:

lambda argument(s) : expression 

Đây,

  • (các) argument – bất kỳ giá trị nào được truyền cho hàm lambda
  • expression – biểu thức được thực thi và trả về

Dưới đây là một số ví dụ để minh họa cú pháp của Lambda:

  1. Lambda không có tham số:
greeting = lambda: "Hello, World!"
print(greeting())  # Kết quả: Hello, World!
  1. Lambda với một tham số:
double = lambda x: x * 2
print(double(5))  # Kết quả: 10
  1. Lambda với nhiều tham số:
add = lambda x, y: x + y
print(add(3, 4))  # Kết quả: 7
  1. Lambda kết hợp với các biểu thức điều kiện:
is_even = lambda x: x % 2 == 0
print(is_even(5))  # Kết quả: False

larger_number = lambda x, y: x if x > y else y
print(larger_number(3, 7))  # Kết quả: 7

Lambda cho phép bạn định nghĩa hàm ngắn gọn và linh hoạt mà không cần phải đặt tên. Bạn có thể sử dụng Lambda để thực hiện các phép toán đơn giản, áp dụng cho các phần tử trong danh sách, sắp xếp, lọc và nhiều tác vụ khác trong Python.

Hãy xem một ví dụ,

greet = lambda : print('Hello World')

Ở đây, chúng ta đã định nghĩa một hàm lambda và gán nó cho biến có tên là hello.

Để thực thi hàm lambda này, chúng ta cần gọi nó. Đây là cách chúng ta có thể gọi hàm lambda

# gọi hàm lambda
greet()

Lưu ý: Hàm lambda này không có bất kỳ đối số nào.

Ví dụ: Hàm lambda Python

# declare a lambda function
greet = lambda : print('Hello World')

# call lambda function
greet()

# Output: Hello World

Trong ví dụ trên, chúng ta đã định nghĩa một hàm lambda và gán nó cho biến chào mừng.

Khi chúng ta gọi hàm lambda, câu lệnh print() bên trong hàm lambda được thực thi.

Xem thêm Danh sách(List) trong ngôn ngữ Dart

Ưu điểm và hạn chế của Python Lambda

Python Lambda có một số ưu điểm và hạn chế cần được lưu ý. Dưới đây là một số ưu điểm và hạn chế của Python Lambda:

Ưu điểm của Python Lambda:

  1. Tiết kiệm thời gian và không gian mã: Lambda cho phép định nghĩa hàm ngắn gọn mà không cần phải viết một hàm riêng biệt. Điều này giúp giảm thời gian và công sức viết code, giúp mã nguồn trở nên ngắn gọn và dễ đọc hơn.
  2. Hỗ trợ các hàm bậc cao (higher-order functions): Lambda thường được sử dụng kết hợp với các hàm bậc cao như map(), filter(), reduce() để thực hiện các phép toán trên các dữ liệu dạng list hoặc iterator. Điều này giúp tăng tính linh hoạt và hiệu quả trong việc xử lý dữ liệu.
  3. Khả năng định nghĩa các hàm ẩn danh: Lambda cho phép bạn định nghĩa các hàm ẩn danh, không cần phải đặt tên cho chúng. Điều này hữu ích khi bạn chỉ cần sử dụng một hàm đơn giản một lần duy nhất trong mã.

Hạn chế của Python Lambda:

  1. Hạn chế trong khả năng mở rộng: Lambda thường chỉ thích hợp cho các hàm đơn giản và không thể mở rộng như các hàm thông thường. Điều này là do các hàm lambda không thể chứa các câu lệnh rẽ nhánh phức tạp, vòng lặp, hoặc các khối mã lớn.
  2. Khó debug: Vì Lambda là các hàm ẩn danh, không có tên, nó có thể khó để debug khi gặp lỗi. Việc xác định lỗi và theo dõi nguyên nhân có thể trở nên khó khăn hơn so với các hàm thông thường.
  3. Không hỗ trợ các câu lệnh đa dòng: Lambda chỉ cho phép biểu thức duy nhất, không thể chứa các câu lệnh đa dòng. Điều này giới hạn khả năng thực hiện các logic phức tạp trong một hàm lambda.

Trong tổng quát, Python Lambda là một tính năng mạnh mẽ và hữu ích cho việc định nghĩa các hàm ngắn gọn và linh hoạt. Tuy nhiên, nó cũng có những hạn chế cần được xem xét khi sử dụng. Việc lựa chọn sử dụng Lambda hay hàm thông thường phụ thuộc vào tính chất và yêu cầu cụ thể của từng tình huống lập trình.

Xem thêm Thiết lập môi trường Deep learning Python

Hàm lambda Python với một đối số

Tương tự như các hàm thông thường, hàm lambda cũng có thể chấp nhận đối số. Ví dụ,

#lambda chấp nhận một đối số
greet_user = lambda name : print('Hey there,', name)

# gọi hàm lambda
greet_user('hello')

Trong ví dụ trên, chúng tôi đã gán hàm lambda cho biến welcome_user.

Ở đây, tên sau từ khóa lambda chỉ định rằng hàm lambda chấp nhận đối số có tên name.

Lưu ý cuộc gọi của hàm lambda,

greet_user('hello')

Ở đây, chúng tôi đã chuyển một giá trị chuỗi ‘hello’ cho hàm lambda của chúng tôi.

Và cuối cùng, câu lệnh bên trong hàm lambda được thực thi.

Xem thêm Đọc file CSV, JSON, XLSX bằng Python

Sử dụng Python Lambda trong các ví dụ thực tChatGPT

Python Lambda có thể được sử dụng trong nhiều ví dụ thực tế. Dưới đây là một số ví dụ minh họa về cách sử dụng Python Lambda trong các tình huống thực tế:

  1. Áp dụng hàm Lambda cho mỗi phần tử trong danh sách:
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x**2, numbers))
print(squared_numbers)
# Kết quả: [1, 4, 9, 16, 25]

Trong ví dụ này, Lambda được sử dụng kết hợp với hàm map() để tính bình phương của mỗi phần tử trong danh sách numbers.

  1. Lọc các phần tử thỏa mãn điều kiện sử dụng Lambda:
numbers = [1, 2, 3, 4, 5]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)
# Kết quả: [2, 4]

Trong ví dụ này, Lambda được sử dụng kết hợp với hàm filter() để lọc ra các số chẵn từ danh sách numbers.

  1. Sắp xếp danh sách các đối tượng dựa trên một thuộc tính sử dụng Lambda:
students = [
    {'name': 'Alice', 'age': 20},
    {'name': 'Bob', 'age': 18},
    {'name': 'Charlie', 'age': 22}
]
students.sort(key=lambda x: x['age'])
print(students)
# Kết quả: [{'name': 'Bob', 'age': 18}, {'name': 'Alice', 'age': 20}, {'name': 'Charlie', 'age': 22}]

Trong ví dụ này, Lambda được sử dụng để xác định thuộc tính age làm tiêu chí sắp xếp danh sách students theo tuổi.

  1. Xử lý các biểu thức điều kiện phức tạp:
is_prime = lambda num: all(num % i != 0 for i in range(2, int(num**0.5) + 1))
print(is_prime(17))
# Kết quả: True

Trong ví dụ này, Lambda được sử dụng để kiểm tra xem một số có phải là số nguyên tố hay không.

Những ví dụ trên chỉ là một số trường hợp sử dụng Python Lambda trong các tình huống thực tế. Lambda cung cấp tính linh hoạt và tiện ích trong việc viết mã ngắn gọn và xử lý dữ liệu. Bạn có thể tùy chỉnh và sử dụng Lambda dựa trên nhu cầu cụ thể của mình trong quá trình lập trình.

Xem thêm Lý thuyết số Nhóm, vành, trường

Lambda kết hợp với các hàm Python khác

Lambda có thể kết hợp với nhiều hàm Python khác để thực hiện các phép toán và xử lý dữ liệu phức tạp. Dưới đây là một số ví dụ về việc kết hợp Lambda với các hàm Python phổ biến:

  1. map():
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x**2, numbers))
print(squared_numbers)
# Kết quả: [1, 4, 9, 16, 25]

Trong ví dụ này, hàm Lambda được kết hợp với hàm map() để áp dụng biểu thức bình phương cho mỗi phần tử trong danh sách numbers.

  1. filter():
numbers = [1, 2, 3, 4, 5]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)
# Kết quả: [2, 4]

Trong ví dụ này, hàm Lambda được kết hợp với hàm filter() để lọc ra các số chẵn từ danh sách numbers.

  1. reduce() (cần import từ thư viện functools):
from functools import reduce

numbers = [1, 2, 3, 4, 5]
product = reduce(lambda x, y: x * y, numbers)
print(product)
# Kết quả: 120

Trong ví dụ này, hàm Lambda được kết hợp với hàm reduce() để tính tích của tất cả các phần tử trong danh sách numbers.

  1. sorted():
students = [
    {'name': 'Alice', 'age': 20},
    {'name': 'Bob', 'age': 18},
    {'name': 'Charlie', 'age': 22}
]
students.sort(key=lambda x: x['age'])
print(students)
# Kết quả: [{'name': 'Bob', 'age': 18}, {'name': 'Alice', 'age': 20}, {'name': 'Charlie', 'age': 22}]

Trong ví dụ này, hàm Lambda được kết hợp với tham số key trong hàm sorted() để sắp xếp danh sách students dựa trên thuộc tính age.

  1. max()min():
numbers = [1, 2, 3, 4, 5]
max_number = max(numbers, key=lambda x: x)
min_number = min(numbers, key=lambda x: x)
print(max_number, min_number)
# Kết quả: 5 1

Trong ví dụ này, hàm Lambda được sử dụng trong tham số key của hàm max()min() để tìm giá trị lớn nhất và nhỏ nhất trong danh sách numbers.

Những ví dụ trên chỉ là một số trường hợp phổ biến về việc kết hợp Lambda với các hàm Python khác. Lambda có thể kết hợp với các hàm khác để thực hiện nhiều phép toán và xử lý dữ liệu đa dạng trong Python.

Xem thêm lambda trong java

Trả lời

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 *

Contact Me on Zalo
Call now