Blog

Làm thế nào để sử dụng các hàm Lambda trong Python?

Các nhà phát triển ngày nay, cả mới và có kinh nghiệm, dựa vào Ngôn ngữ lập trình Python để thực hiện các nhiệm vụ liên quan đến Phát triển phần mềm, Học máy, Trực quan hóa dữ liệu, Tự động hóa và nhiều hơn nữa. Ngôn ngữ mạnh mẽ này với vô số thư viện của nó cung cấp cho người dùng một gói hoàn chỉnh với các tính năng lập trình phong phú. Hơn nữa, các doanh nghiệp tận dụng nguồn mở sẵn có của Ngôn ngữ lập trình Python để thực hiện Phân tích dữ liệu và trích xuất thông tin chi tiết từ bộ dữ liệu khổng lồ của họ. Việc tích hợp dễ dàng với các công cụ khác cũng thúc đẩy các nhà phát triển chọn Python làm công cụ chính để phát triển Phần mềm ứng dụng. 

Ngôn ngữ lập trình Python chứa một tính năng đặc biệt, được gọi là các hàm Lambda. Các hàm Lambda trong Python là các hàm danh mục đặc biệt lấy nhiều đối số và vận hành chúng trên một biểu thức duy nhất. Hơn nữa, một hàm Lambda trong Python không cần tên và do đó lý tưởng để sử dụng trong một hàm lồng nhau.

Bài viết này sẽ giới thiệu cho bạn về Ngôn ngữ lập trình Python cùng với các tính năng chính của nó. Nó cũng sẽ giải thích khái niệm, cú pháp và tầm quan trọng của các hàm Python Lambda và sẽ liệt kê một số trường hợp sử dụng phổ biến nhất của các hàm như vậy. Đọc cùng để hiểu chi tiết các hàm Lambda trong Python và tìm hiểu về các hạn chế của chúng!

Python là gì?

Python là một Ngôn ngữ GPP (Lập trình mục đích chung) được sử dụng rộng rãi để đơn giản hóa trải nghiệm viết mã của bạn. Nó yêu cầu một đường cong học tập nhỏ và cung cấp cho bạn nhiều thư viện cho phép bạn triển khai các chức năng cấp cao trực tiếp trong chương trình của mình. Mô hình lập trình mạnh mẽ của Python khiến nó trở thành lựa chọn hàng đầu của các nhà phát triển ngày nay. Nó tìm thấy các ứng dụng rộng rãi trong các lĩnh vực Phát triển Trang web & Phần mềm, Phân tích Dữ liệu, Trực quan hóa Dữ liệu, Tự động hóa và hơn thế nữa. Hơn nữa, Python hoạt động trên một cú pháp đơn giản cho phép các chuyên gia từ bất kỳ ngành nào như Thương mại, Khoa học, v.v. tận dụng nó để tự động hóa các công việc hàng ngày. Ngôn ngữ lập trình Python cũng hoạt động như một công cụ không thể thiếu trong Khoa học dữ liệu và lý tưởng để triển khai các Tính toán thống kê rộng lớn, tạo mô hình & thuật toán Máy học, v.v. 

Các doanh nghiệp cũng có thể sử dụng Ngôn ngữ lập trình Python để tạo Báo cáo & Trực quan hóa dữ liệu phong phú dưới dạng Biểu đồ thanh, Biểu đồ, Biểu đồ hình tròn, v.v. Hơn nữa, nó hỗ trợ các thư viện cho phép bạn thực thi các chương trình ML (Máy học) nâng cao với tốc độ nhanh hơn và một cách đơn giản hơn. 

Các tính năng chính của Python

Các tính năng sau làm cho Ngôn ngữ lập trình Python trở thành lựa chọn hàng đầu cho các nhà phát triển ngày nay:

  • Đường cong học tập nhỏ : Ngôn ngữ lập trình Python tạo điều kiện cho một môi trường không phức tạp cho mục đích phát triển và tự động hóa. Quy trình làm việc đơn giản cùng với tính sẵn có nguồn mở của nó đã khiến ngôn ngữ này trở thành lựa chọn hàng đầu của hàng triệu lập trình viên cấp thấp.
  • Ứng dụng mạnh mẽ : Cú pháp đơn giản của nó, dựa trên ngôn ngữ có thể đọc được của con người, khiến nó trở thành lựa chọn chính cho dự án. Hơn nữa, các ràng buộc và ngoại lệ trong Ngôn ngữ lập trình Python, được quản lý tốt hơn so với các Ngôn ngữ lập trình ngang hàng của nó. Bản chất mạnh mẽ và khả năng ứng dụng linh hoạt này làm cho mã Python trở thành một sự phù hợp lý tưởng cho các Dự án ML & Phát triển Web.
  • Cộng đồng lớn : Sự phổ biến rộng rãi của Python đã dẫn đến một cộng đồng trực tuyến khổng lồ gồm các lập trình viên hoạt động thường xuyên đóng góp vào việc cập nhật các mô-đun và thư viện của ngôn ngữ này. Hơn nữa, cộng đồng toàn thế giới này sẵn sàng cung cấp trợ giúp và đề xuất cho các lập trình viên mới. Bạn có thể chỉ cần đăng vấn đề của mình trên trang cộng đồng và nhiều nhà phát triển có kinh nghiệm sẽ gợi ý cho bạn câu trả lời tốt nhất có thể ngay lập tức.

Bạn có thể tìm hiểu thêm về Ngôn ngữ lập trình Python bằng cách truy cập vào đây .

Hàm Anonymous hoặc Lambda trong Python là gì?

Hàm Lambda trong Python còn được gọi là hàm Ẩn danh là một loại hàm có thể được định nghĩa mà không cần tên hoặc danh tiếng. Hơn nữa, để xác định một hàm bình thường trong Ngôn ngữ lập trình Python, bạn yêu cầu từ khóa def . Tuy nhiên, một hàm Lambda trong Python cần từ khóa lambda trong định nghĩa của nó. Sự khác biệt cơ bản giữa một hàm bình thường và một hàm lambda được hiển thị trong ví dụ sau: 

#Normal python function
def a_name(x):
   return x+x

 Công việc tương tự có thể được thực hiện bằng cách sử dụng hàm Lambda như sau:

#Lambda function
lambda x: x+x

2 chức năng trên thực hiện cùng một nhiệm vụ và hoạt động theo cách hoàn toàn giống nhau trong nội bộ. Tuy nhiên, hàm Lambda của Python cung cấp cho bạn tính linh hoạt cao hơn và dễ sử dụng. Bạn có thể tận dụng các hàm Python Lambda để thực hiện các hoạt động logic đơn giản và làm cho mã của bạn dễ đọc hơn. Hơn nữa, những chức năng này rất lý tưởng cho những trường hợp bạn chỉ cần sử dụng một chức năng một lần.

Tầm quan trọng của các hàm Lambda trong Python

Bạn đã biết trong phần trước rằng ở cấp trình thông dịch, các hàm Python Lambda được xử lý giống như bất kỳ hàm bình thường nào của ngôn ngữ lập trình này. Điều này ngụ ý rằng một hàm Lambda cung cấp cho bạn chức năng tương tự như bất kỳ hàm nào khác nhưng ở một cú pháp nhỏ gọn. Do đó, bạn có thể đạt được cùng một nhiệm vụ nhưng một cách liền mạch bằng cách sử dụng các hàm Lambda của Python.

Sử dụng các hàm Lambda trong Ngôn ngữ lập trình Python, bạn có thể dễ dàng xác định một hàm và gọi nó ngay lập tức, điều mà các hàm thông thường không thể thực hiện được. Hơn nữa, các hàm Lambda cho phép bạn chuyển một hàm dưới dạng tham số cho một hàm khác. Bằng cách này, bạn có thể sử dụng chức năng Lambda để xây dựng một hàm sử dụng một lần và chuyển nó dưới dạng tham số cho bất kỳ hàm nào.

Cú pháp và cách sử dụng các hàm Lambda trong Python

Bạn đã học trong các phần trước rằng việc xác định một hàm thông thường yêu cầu từ khóa def trong Python trong khi việc xác định các hàm ẩn danh có thể thực hiện được bằng cách sử dụng từ khóa lambda. Hơn nữa, một hàm Python Lambda có một cú pháp tiếp theo. Điều này ngụ ý rằng một hàm Lambda có thể sử dụng bất kỳ số lượng đối số nào, nhưng chỉ có thể hoạt động trên một biểu thức. Hãy ghi nhớ điều này, cú pháp chung của bất kỳ hàm Lambda nào trong Python như sau:

lambda arguments: expression

Biểu thức đơn được đánh giá dựa trên nhiều đối số và giá trị của nó sau khi đánh giá được trả về. Bạn sẽ hiểu thêm về cú pháp hàm Lambda với các ví dụ sau:

Ví dụ 1: Hàm Lambda bên dưới thêm 1 vào bất kỳ đối số nhất định nào

lambda x: x + 1

Bạn có thể áp dụng hàm Lambda ở trên cho đối số mà bạn chọn bằng cách thêm dấu ngoặc đơn vào hàm và viết đối số bắt buộc bên cạnh nó như được gieo bên dưới:

(lambda x: x + 1)(2)

Hàm Lambda ở trên nhận đối số “2”, thêm 1 vào đối số và cung cấp “3” làm đầu ra.

Vì các hàm Lambda là các biểu thức nên bạn có thể gán tên cho chúng. Do đó, bạn có thể đổi tên hàm Lambda trước đó như sau:

AddOne = lambda x: x + 1
AddOne(2)

Đoạn mã cho kết quả sau:

3

Hàm Lambda trong Python hoạt động giống như hàm Python bình thường sau:

def add_one(x):
    return x + 1

Hãy nhớ rằng một hàm Lambda không thể chứa các câu lệnh. Điều này ngụ ý rằng việc sử dụng các câu lệnh như pass, return, khẳng định, v.v. sẽ gây ra ngoại lệ SyntaxError trong mã Python của bạn.

Sử dụng một hàm Lambda đòi hỏi phải có đủ kiến ​​thức về các trường hợp sử dụng tối ưu của nó. Điều này ngụ ý rằng bạn cần phải rõ ràng về các tình huống lý tưởng cho việc triển khai hàm Lambda thay cho một hàm bình thường. Một trong những tình huống thường xảy ra nhất khi sử dụng hàm Lambda là trong khi Lập trình hàm. Loại mã này yêu cầu nhà phát triển sử dụng một chức năng không tên và cũng chỉ trong một khung thời gian ngắn. Trong tình huống như vậy, một hàm Python Lambda là lựa chọn tốt nhất của bạn.

Trong Python, các hàm Lambda thường được sử dụng làm đối số cho một hàm bậc cao hơn. Một hàm bậc cao hơn là một hàm có thể chuyển các hàm khác làm đối số. 3 hàm tích hợp bậc cao hơn sau đây thường được các nhà phát triển sử dụng các hàm Python Lambda làm tham số:

Sử dụng các hàm Lambda làm Đối số với Filter ()

Ngôn ngữ lập trình Python cung cấp một hàm filter () có thể dễ dàng nhập một hàm & một danh sách làm đối số. Hàm trả về một danh sách mới chứa mà biểu thức của hàm được đánh giá là true. 

Ví dụ sau phụ thuộc vào hàm filter () và lọc ra các số chẵn từ danh sách đầu vào của nó:

MyList = [5, 1, 6, 8, 11, 3, 4, 12]
NewList = list(filter(lambda x: (x%2 == 0) , MyList))
print(NewList)

Đoạn mã trên tận dụng hàm Python Lambda làm đối số để thực hiện lọc được yêu cầu và xuất ra kết quả sau:

Đầu ra

[6, 8, 4, 12]

Sử dụng các hàm Lambda làm đối số với map ()

Hàm map () cũng hoạt động trên một danh sách và nhận một hàm làm đối số cùng với danh sách. Các nhà phát triển sử dụng hàm map () để lấy một danh sách mới dưới dạng đầu ra chứa các mục do hàm đầu vào đó trả về cho từng mục trong danh sách ban đầu. Ví dụ sau giới thiệu việc sử dụng hàm Lambda trong Python làm đối số cho hàm map ():

Đoạn mã dưới đây sử dụng hàm map () để nhập một danh sách và nhân đôi tất cả các mục của nó trong đầu ra.

MyList = [2, 4, 5, 6, 8, 3, 11, 12]
NewList = list(map(lambda x: x * 2 , MyList))
print(NewList)

Hàm Lambda được cung cấp dưới dạng một đối số thực hiện ánh xạ bắt buộc và trả về kết quả sau:

Đầu ra

[4, 8, 10, 12, 16, 6,22, 24]

Sử dụng các hàm Lambda làm Đối số với Reduce ()

Hàm Reduce () của Python nhận một hàm Lambda và một danh sách làm đối số. Vai trò của hàm Lambda là thực hiện lặp lại các cặp giá trị từ danh sách đầu vào và kết quả là trả về một danh sách đã rút gọn.

Ví dụ sau minh họa việc sử dụng hàm Lambda trong Python trong Reduce () để lấy tổng của một danh sách:

từ functools nhập giảm

lis = [8, 5, 20, 10, 100, 60]
sum = reduce((lambda x, y: x + y), lis)
print (sum)

Mã sẽ cung cấp cho bạn kết quả sau:

203

Hạn chế của Pyhton Lambda Functions

Hàm Lambda trong Python có tầm quan trọng lớn trong một số trường hợp sử dụng nhất định như đã giải thích trong các phần trước. Tuy nhiên, nó đi kèm với những hạn chế sau:

  • Các hàm lambda chỉ có thể hoạt động trên một biểu thức. Điều này ngụ ý rằng bất kể số lượng đối số bạn muốn chuyển làm đầu vào, hàm Lambda sẽ không hỗ trợ nhiều hơn 1 hoạt động độc lập.
  • Việc sử dụng một hàm Lambda trong Python cho các hoạt động có thể sử dụng nhiều hơn 1 dòng trong một hàm bình thường là một vấn đề. Ví dụ: nếu bạn đang sử dụng một hàm có các phép toán điều kiện lồng nhau, đừng triển khai các hàm Lambda vì nó sẽ không khả thi cho những người đọc khác hiểu mã của bạn. Thay vào đó, hãy sử dụng các hàm được đặt tên bình thường và tạo mã tốt hơn và dễ hiểu hơn.
  • Bạn có thể gán tên cho hàm Lambda, tuy nhiên, nó không được khuyến khích. Điều này là do Lambda là một hàm ẩn danh không được thiết kế để lưu trữ. Điều này ngụ ý rằng các hàm Lambda chỉ tốt cho những trường hợp mà việc triển khai chúng mà không có bất kỳ tên nào sẽ có lợi.
  • Các hàm lambda không thể bao gồm chuỗi doc để giải thích mọi đầu vào, hoạt động và đầu ra. Đây là lý do tại sao việc sử dụng một hàm định nghĩa thông thường sẽ thích hợp hơn nếu bạn muốn tạo mã có cấu trúc.

Chúng tôi chuyên cung cấp những khoá học về Phân tích dữ liệu, đăng ký ngay để nhận được tư vấn chi tiết lộ trình dành riêng cho bạn nhé!

    LIÊN HỆ VỚI CHÚNG TÔI ĐỂ NHẬN ĐƯỢC TƯ VẤN MIỄN PHÍ
    Xin vui lòng điền vào form dưới đây. Chúng tôi sẽ liên hệ lại ngay cho bạn khi nhận được thông tin:






    16:58

    Leave a Reply

    Your email address will not be published. Required fields are marked *