Chúng ta có thể sử dụng hàm lambda trong python không?

Trong khi xác định các chức năng bình thường, chúng tôi đang sử dụng từ khóa def trong Python, nhưng trong khi xác định các chức năng ẩn danh, chúng tôi đang sử dụng từ khóa lambda

Do đó, hàm ẩn danh còn được gọi là hàm Lambda

Làm cách nào để sử dụng Hàm Lambda trong Python?

Hàm lambda trong python có cú pháp tiếp theo

Cú pháp hàm Lambda trong Python

lambda arguments: expression

Lưu ý rằng các hàm Lambda có thể có số lượng đối số bất kỳ nhưng chúng chỉ có một biểu thức. Đầu tiên, biểu thức được đánh giá và sau đó được trả về. Chúng tôi đã sử dụng các hàm Lambda ở bất kỳ nơi nào cần có các đối tượng hàm

Ví dụ về Hàm Lambda trong Python

Trong phần này, chúng ta sẽ xem ví dụ về hàm lambda nhân đôi [i. e, nhân hai] giá trị đầu vào

Chương trình cho biết việc sử dụng các hàm Lambda

Giải thích mã

Trong đoạn mã trên, lambda x. x * 2 là hàm lambda. Ngoài ra, x của chúng là đối số và x * 2 là biểu thức được đánh giá và trả về cho người dùng

Chức năng này không có tên. Nó trả về một đối tượng hàm được gán cho mã định danh kép. bây giờ chúng ta sẽ gọi nó là một chức năng tiêu chuẩn. tuyên bố

double = lambda x: x * 2

gần giống như

def double[x]:
return x * 2

Sử dụng Hàm Lambda trong Python

Chúng tôi sử dụng các hàm lambda khi chúng tôi yêu cầu một hàm không tên trong một khoảng thời gian ngắn của bạn

Trong Python, chúng ta thường sử dụng Hàm Lambda làm đối số cho hàm bậc cao hơn [hàm nhận các hàm khác làm đối số]

Ví dụ: Các hàm này được sử dụng cùng với các hàm tích hợp sẵn như filter[], map[] và reduce[], v.v. mà chúng ta sẽ thảo luận sau trong bài viết này

Tại sao nên sử dụng Hàm Lambda?

Như bạn có thể thấy trong phần trước, lambda được đối xử giống hệt với các chức năng thông thường ở cấp độ trình thông dịch. Theo một cách nào đó, bạn sẽ nói rằng lambdas cung cấp cú pháp nhỏ gọn để viết các hàm trả về một biểu thức

Tuy nhiên, bạn phải biết khi nào nên sử dụng lambdas và khi nào nên tránh chúng. Trong phần này, bạn có thể tìm hiểu một số nguyên tắc giao diện được các nhà phát triển python sử dụng khi viết lambdas

Một trong những trường hợp sử dụng phổ biến nhất cho lambdas là trong lập trình chức năng vì Python hỗ trợ một mô hình [hoặc phong cách] lập trình được gọi là lập trình chức năng

Nó cho phép bạn cung cấp một hàm dưới dạng tham số cho một hàm khác [ví dụ: trong bản đồ, bộ lọc, v.v. ]. Trong những trường hợp như vậy, sử dụng lambdas mang lại sự tuyệt vời nhờ tạo hàm một lần và chuyển nó làm tham số

Khi nào bạn không nên sử dụng Hàm Lambda?

Trong môi trường sản xuất, Bạn không bao giờ nên viết các hàm lambda phức tạp, vì các lập trình viên duy trì mã của bạn sẽ rất khó giải mã nó. Nếu bạn thấy mình đang tạo các biểu thức một lớp phức tạp, thì đó có thể là một cách thực hành tốt hơn để xác định một hàm chính xác

Do đó, như một phương pháp hay nhất, bạn muốn nhớ rằng mã dễ thường tốt hơn mã phức tạp.

Hàm Lambda trong bộ lọc[]

Chức năng bộ lọc được sử dụng để chọn một số phần tử cụ thể từ một chuỗi các phần tử. Trình tự được sử dụng trong chức năng này là một trình vòng lặp, chẳng hạn như danh sách, bộ, bộ, v.v.

Các phần tử có thể được chọn được xác định dựa trên một số ràng buộc được xác định trước. Cần 2 tham số

  • Hàm xác định ràng buộc lọc
  • Một chuỗi [bất kỳ trình vòng lặp nào như danh sách, bộ dữ liệu, v.v. ]

Ví dụ,

sequences = [10,2,8,7,5,4,3,11,0, 1]
filtered_answer = filter [lambda x: x > 6, sequences] 
print[list[filtered_answer]]

đầu ra

[10, 8, 7, 11]

Giải thích mã

  • Trong câu lệnh đầu tiên, chúng tôi xác định một vùng chứa danh sách có tên là các chuỗi chứa một số số
  • Ở đây, chúng ta khai báo một biến có tên làfilter_answer, biến này có thể lưu trữ các giá trị được lọc trả về bởi hàm filter[]
  • Hàm lambda chạy trên từng phần tử của danh sách và trả về true nếu nó lớn hơn 6
  • In kết quả trả về của hàm lọc

Hàm Lambda trong bản đồ[]

Hàm bản đồ được sử dụng để sử dụng một thao tác cụ thể cho từng phần tử trong một chuỗi. Giống như filter[], nó cũng nhận 2 tham số

  • Một hàm xác định cách thực hiện các thao tác trên các phần tử
  • Một hoặc nhiều trình tự

Ví dụ,

Trong ví dụ này, chúng ta có thể tạo một chương trình in các ô vuông của các số trong một danh sách đã cho

sequences = [10,2,8,7,5,4,11]
squared_result = map [lambda x: x*x, sequences] 
print[list[squared_result]]

đầu ra

[100, 4, 64, 49, 25, 16, 121]

Giải thích mã

  • Ở đây, chúng tôi xác định một danh sách chứa các chuỗi tên có chứa một số số
  • Chúng tôi khai báo một biến có tên là squared_result có thể lưu trữ các giá trị được ánh xạ
  • Hàm lambda chạy trên từng phần tử của danh sách và trả về bình phương của số đó
  • In kết quả trả về của hàm map

Các hàm Lambda trong reduce[]

Hàm rút gọn, như map[], được sử dụng để sử dụng thao tác cho từng phần tử trong chuỗi. Tuy nhiên, nó hoạt động hơi khác so với chức năng bản đồ. Các bước sau đây sẽ được thực hiện bởi hàm reduce[] để tính toán đầu ra

Bước 1. Thực hiện phép toán đã xác định trên 2 phần tử chính của dãy

Bước 2. Lưu kết quả này

Bước 3. Thực hiện thao tác với kết quả đã lưu và do đó là phần tử tiếp theo trong chuỗi

Bước 4. Lặp lại cho đến khi không còn phần tử nào nữa

Nó cũng nhận hai tham số

  • Một chức năng xác định cách các hoạt động được thực hiện
  • Một chuỗi [bất kỳ trình vòng lặp nào như danh sách, bộ dữ liệu, v.v. ]

Ví dụ,

Trong ví dụ này, chúng ta sẽ tạo một chương trình trả về tích của tất cả các phần tử có trong danh sách do người dùng đưa ra

from functools import reduce
sequences = [1,2,3,4,5,6]
product = reduce [lambda x, y: x*y, sequences]
print[product]

đầu ra

________số 8_______

Giải thích mã

  • Nhập giảm từ mô-đun funcools
  • Ở đây, chúng tôi xác định một vùng chứa danh sách có tên là các chuỗi có chứa một số số
  • Chúng tôi khai báo một biến được gọi là sản phẩm có thể lưu trữ giá trị giảm
  • Hàm lambda chạy từng phần tử trong danh sách và trả về tích của số đó theo kết quả trước đó
  • In kết quả trả về của hàm rút gọn

Điều này kết thúc cuộc thảo luận của chúng tôi

Ghi chú kết thúc

Tôi hy vọng bạn thích bài viết

Nếu bạn muốn kết nối với tôi, xin vui lòng liên hệ với tôi qua Email

Đề xuất và nghi ngờ của bạn được hoan nghênh ở đây trong phần bình luận. Cảm ơn bạn đã đọc bài viết của tôi

Phương tiện hiển thị trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định của Tác giả

Lambda có thể được sử dụng trong Python không?

Hàm Lambda Python là hàm ẩn danh 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 bình thường trong Python. Tương tự, từ khóa lambda được sử dụng để xác định hàm ẩn danh trong Python .

lambda[] trong Python là gì?

lambda là từ khóa trong Python để xác định hàm ẩn danh . [các] đối số là một trình giữ chỗ, đó là một biến sẽ được sử dụng để giữ giá trị mà bạn muốn chuyển vào biểu thức hàm. Hàm lambda có thể có nhiều biến tùy thuộc vào những gì bạn muốn đạt được.

Chủ Đề