- vừa được xem lúc

Lambda Function(Hàm ẩn danh) trong Python

0 0 29

Người đăng: Nguyen Manh Thang

Theo Viblo Asia

Chào các bạn trong bài viết này, mình sẽ giới thiệu với các bạn về Lambda Function còn được gọi là các hàm ẩn danh.Mình sẽ giải thích cho các bạn hiểu về khái niệm của chúng là gì, cú pháp và cách xử dụng của chúng. Các bạn cùng tìm hiểu trong bài viết của mình nhé!

Khái niệm Lambda Function(hàm ẩn danh) trong Python

Trong Python, một hàm ẩn danh là một hàm được định nghĩa mà không có tên. Trong khi các hàm bình thường sẽ được định nghĩa bằng các từ khóa def trong Python, thì các hàm ẩn danh sẽ được định nghĩa bằng từ khóa lambda. Vì vậy các hàm ẩn danh còn được gọi là các Lambda Function.


Làm cách nào xử dụng Lambda Function trong Python?

Một lambda function trong Python sẽ có cú pháp như sau:

Cú pháp của Lambda Function trong python

lambda arguments: expression

Các hàm lambda có thể có bất kỳ số đối số nào nhưng chỉ có một biểu thức. Biểu thức được đánh giá và trả về. Các lambda function có thể được sử dụng ở bất cứ chỗ nào yêu cầu các đối tượng hàm.


Ví dụ về Lambda Function trong python

Dưới đây là một ví dụ về lambda function để xử lý việc tăng gấp đôi giá trị đầu vào:

#Ví dụ về việc sử dụng các Lambda Function trong Python
double = lambda x: x * 2 print(double(5))

Kết quả:

10

Ở ví dụ trên lambda x: x * 2 sẽ là hàm lamba. Ở đây x là đối số vào x*2 là biểu thức được đánh giá và trả về.

Function này sẽ không có tên. Nó trả về một object được định danh là double. Giờ thì chúng ta có thể gọi nó như một hàm bình thường. Ví dụ:

double = lambda x: x * 2

Nó sẽ tương tự như các khai báo function như sau:

def double(x): return x * 2

Xử dụng Lambda Function trong Python

Chúng ta thường sử dụng lambda function khi mà cần một hàm không tên trong một khoảng thời gian ngắn.

Trong Python, chúng ta thường sử dụng lambda function làm đối số cho một hàm bậc cao hơn (một hàm mà có thể nhận các hàm khác làm đối số). Lambda function thường được sử dụng cùng với các hàm tích hợp sẵn như filter(), map()...

Ví dụ khi xử dụng Lambda Function với Filter()

Hàm filter() trong Python nhận một hàm và một danh sách làm đối số. Hàm được gọi với tất cả các items trong danh sách và một i danh sách mới được trả về chứa các items mà hàm đánh giá là True.

Đây là một ví dụ sử dụng hàm filter() để chỉ lọc ra các số chẵn từ danh sách.

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

Kết quả:

[4, 6, 8, 12]

Ví dụ khi xử dụng Lambda Function với map()

Hàm map() trong Python nhận một hàm và một danh sách.

Hàm được gọi với tất cả các items trong danh sách và một danh sách mới được trả về chứa các item được hàm đó for each cho từng item. Đây là một ví dụ sử dụng hàm map() để nhân đôi tất cả các mục trong một danh sách.

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

Kết quả:

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

Ưu điểm

Ưu điểm khi sử dụng Lambda Function theo tìm hiểu các nhân mình thấy thì nó sẽ viết khá ngắn gọn. Tối ưu khi viết Code là rất tốt. Rất tối ưu khi cần xử lý logic trong một chỗ nhất định trong 1 khoảng thời gian ngắn

Nhược điểm

Ưu điểm khi sử dụng Lambda Function theo mình thì sẽ rất khó cho việc debugmaintenance.


Kết Luận

Dưới đây mình đã giới thiệu với các bạn về Lambda Function khái niệm, các xử dụng và một số ví dụ sử dụng Lambda Function trong Python. Hi vọng các bạn thích bài viết này. Nếu có bất kì thắc mắc gì hãy để lại comment ở phía dưới nhé.


Tham Khảo chi tiết hơn

https://www.programiz.com/python-programming/anonymous-function

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 525

- vừa được xem lúc

Cài đặt WSL / WSL2 trên Windows 10 để code như trên Ubuntu

Sau vài ba năm mình chuyển qua code trên Ubuntu thì thật không thể phủ nhận rằng mình đã yêu em nó. Cá nhân mình sử dụng Ubuntu để code web thì thật là tuyệt vời.

0 0 396

- vừa được xem lúc

Đặt tên commit message sao cho "tình nghĩa anh em chắc chắn bền lâu"????

. Lời mở đầu. .

1 1 737

- vừa được xem lúc

Tìm hiểu về Resource Controller trong Laravel

Giới thiệu. Trong laravel, việc sử dụng các route post, get, group để gọi đến 1 action của Controller đã là quá quen đối với các bạn sử dụng framework này.

0 0 358

- vừa được xem lúc

Phân quyền đơn giản với package Laravel permission

Như các bạn đã biết, phân quyền trong một ứng dụng là một phần không thể thiếu trong việc phát triển phần mềm, dù đó là ứng dụng web hay là mobile. Vậy nên, hôm nay mình sẽ giới thiệu một package có thể giúp các bạn phân quyền nhanh và đơn giản trong một website được viết bằng PHP với framework là L

0 0 449

- vừa được xem lúc

Bạn đã biết các tips này khi làm việc với chuỗi trong JavaScript chưa ?

Hi xin chào các bạn, tiếp tục chuỗi chủ đề về cái thằng JavaScript này, hôm nay mình sẽ giới thiệu cho các bạn một số thủ thuật hay ho khi làm việc với chuỗi trong JavaScript có thể bạn đã hoặc chưa từng dùng. Cụ thể như nào thì hãy cùng mình tìm hiểu trong bài viết này nhé (go).

0 0 433