Computer >> Máy Tính >  >> Lập trình >> Python

Các chức năng của Python Lambda:Giới thiệu

Các hàm Lambda trong Python là các hàm đơn dòng, ẩn danh. Biểu thức Lambda trong Python rất hữu ích cho các hàm dòng đơn không cần tên, chẳng hạn như lọc danh sách, chuyển đổi trường hợp chuỗi hoặc nhân một số.


Khi bạn đang viết một chương trình sẽ thực hiện một tác vụ tương tự nhiều lần, việc lặp lại mã của bạn là không thực tế vì điều đó có nghĩa là bạn phải cập nhật mọi phiên bản của nó nếu bạn cần thay đổi cách thức hoạt động của tác vụ. Cơ sở mã của bạn càng lớn thì càng mất nhiều thời gian để thực hiện những thay đổi này.

Đó là lúc các chức năng trở nên hữu ích. Trong Python, có một loại hàm đặc biệt được gọi là hàm ẩn danh cho phép bạn khai báo các hàm nhanh chóng:biểu thức lambda.

Hướng dẫn này sẽ thảo luận về cách sử dụng các hàm lambda trong Python để tự động hóa các quy trình lặp lại. Chúng tôi cũng sẽ cung cấp hai ví dụ về một hàm lambda đang hoạt động, vì vậy bạn sẽ có tất cả các tài liệu cần thiết để viết cho riêng mình.

Hàm là gì?

Trong lập trình, một hàm là một khối mã thực hiện một nhiệm vụ cụ thể.

Một lý do lớn khiến người viết mã sử dụng các hàm là chúng giúp giảm bớt sự lặp lại trong mã của họ. Nếu bạn gói một quy trình thành một hàm, bạn có thể gọi nó ở bất kỳ đâu trong chương trình của mình. Bạn không cần phải lặp lại mã của mình nhiều lần.

Điều này cũng giúp các nhà phát triển viết mã dễ bảo trì hơn. Nếu bạn cần thực hiện thay đổi đối với quy trình đó, tất cả những gì bạn cần làm là sửa đổi chức năng của mình. Bạn không cần thực hiện thay đổi đối với nhiều dòng mã vừa được sao chép và dán vào chương trình của mình.

Dưới đây là ví dụ về một hàm trong Python:

81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.

Sinh viên tốt nghiệp bootcamp trung bình đã dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.

def say_hello(name):
	print("Hello there, " + name)

say_hello("Arthur")

Khi chúng tôi chạy mã này, thông tin sau được trả về:Xin chào, Arthur.

Mặc dù các hàm này rất hữu ích, nhưng nếu bạn muốn làm điều gì đó đơn giản như đặt mọi chuỗi trong danh sách các chuỗi là chữ thường, thì việc viết một hàm khá dài dòng. Bạn phải gán tên cho một chức năng mới để mã của bạn hoạt động. Đó là lúc các hàm lambda xuất hiện.

Hàm Lambda là gì?

Hàm lambda là một loại hàm được định nghĩa mà không có tên. Các hàm này đôi khi được gọi là các hàm ẩn danh, vì chúng không cần tên. Trong khi hàm của chúng ta trước đó có tên sayHello và được định nghĩa bằng cách sử dụng “def”, một hàm lambda không cần tên và được định nghĩa bằng cách sử dụng “lambda”.

Ưu điểm chính của việc sử dụng hàm lambda là nó có thể được viết trên một dòng. Điều này làm cho các hàm lambda trở nên hữu ích nếu bạn có một quy trình nhanh mà bạn muốn thực hiện nhiều lần. Dưới đây là một số trường hợp mà hàm lambda có thể hữu ích:

  • Nhân một số
  • Chuyển đổi một chuỗi thành chữ hoa hoặc chữ thường
  • Lọc danh sách

Đây là cú pháp để tạo một hàm lambda trong Python:

name = lambda arguments: expression

Số lượng đối số bạn có thể chỉ định với một hàm lambda là không giới hạn. Hãy xem qua một ví dụ để minh họa cách hoạt động của hàm lambda trong Python. Giả sử chúng ta muốn nhân một số với bảy. Để làm như vậy, chúng ta có thể sử dụng hàm sau:

def multiply_by_seven(number):
return number * 7

print(multiply_by_seven(2))

Khi chúng tôi chạy mã này, thông tin sau được trả về:14.

Mặc dù mã này hoạt động nhưng nó không hiệu quả như mong đợi. Chúng tôi dành toàn bộ dòng mã để xác định tên và các đối số cho hàm của chúng tôi và một dòng mã khác để tính toán và trả về một giá trị. Để làm cho hàm của chúng ta hiệu quả hơn, chúng ta có thể sử dụng một hàm lambda.

Đây là một hàm lambda thực hiện hành động tương tự như trên:

multiply_by_seven = lambda n: n * 7

print(multiply_by_seven(2))

Mã của chúng tôi trả về:14. Như bạn có thể thấy, đầu ra của hàm của chúng tôi là giống nhau. Sự khác biệt là chúng tôi đã sử dụng một hàm lambda thay vì một hàm thông thường. Trong trường hợp này:

  • lambda từ khóa chỉ ra rằng chúng ta đang khai báo một hàm lambda
  • n là đối số cho chức năng của chúng tôi.
  • n * 7 là một biểu thức duy nhất được chỉ định cho hàm lambda của chúng ta.

Các hàm Lambda được sử dụng khi nào?

Các hàm Lambda có nhiều cách sử dụng trong Python. Trong ví dụ cuối cùng của chúng tôi, chúng tôi đã trình bày cách bạn có thể sử dụng hàm lambda để nhân hai số. Tuy nhiên, có một số trường hợp sử dụng phổ biến hơn mà bạn nên biết.

Thông thường, các hàm lambda được sử dụng cùng với các hàm tích hợp sẵn như reduce() hàm, map() chức năng hoặc bộ lọc filter() chức năng. Các hàm Lambda đôi khi cũng được sử dụng với khả năng hiểu danh sách để thực hiện các tác vụ lặp đi lặp lại.

Giả sử chúng tôi sở hữu một tiệm bánh và chúng tôi muốn tạo danh sách tất cả các loại bánh nướng mà chúng tôi bán dựa trên danh sách tất cả các loại bánh nướng mà chúng tôi bán. Chúng tôi có thể làm như vậy bằng cách sử dụng mã này:

baked_goods = ['Blondie', 'Chocolate Chip Cookie', 'Apple Pie', 'Pecan Pie', 'Blackberry Pie', 'Scone']

pies = filter(lambda pie: "Pie" in pie, baked_goods)

print(list(pies))

Mã của chúng tôi trả về:

['Apple Pie', 'Pecan Pie', 'Blackberry Pie']

Hãy phân tích cách hoạt động của điều này. Trên dòng đầu tiên của mã của chúng tôi, chúng tôi đã khai báo một danh sách các món nướng. Sau đó, chúng tôi sử dụng filter() chức năng lọc ra tất cả các loại bánh nướng có từ "Pie". Bộ lọc filter() chức năng cho phép chúng tôi lặp lại mọi mặt hàng trong danh sách “nướng_goods” và lọc ra các mặt hàng không đáp ứng một tiêu chí cụ thể.

Chúng tôi đã làm điều này bằng cách xác định một hàm lambda để kiểm tra xem mỗi chuỗi có chứa “Pie” hay không và chỉ trả về chuỗi nếu chuỗi đó chứa “Pie”. Trong trường hợp này, hàm lambda của chúng ta là:

lambda pie: "Pie" in pie

Bạn có thể thấy từ ví dụ này rằng các hàm lambda trong Python không cần tên. Chúng có thể tồn tại trong dòng, không giống như các hàm truyền thống. Nếu một mục đáp ứng tiêu chí của chúng tôi, biểu thức Lambda của chúng tôi trả về true; nếu không, không có giá trị nào được trả về.

Cuối cùng, chúng tôi chuyển đổi biến “bánh nướng” thành một danh sách và in nó ra bảng điều khiển. Chúng tôi làm điều này vì filter() trả về một đối tượng bộ lọc tùy chỉnh, vì vậy, để xem bánh của chúng tôi, chúng tôi cần chuyển đổi nó bằng cách sử dụng list() .

Kết luận

Các hàm Lambda, còn được gọi là các hàm ẩn danh, cho phép bạn xác định một hàm mà không cần tên. Chúng hữu ích nếu bạn cần thực hiện một hành động nhiều lần trong mã của mình.

Ví dụ, nếu bạn cần nhân một số với một số khác, bạn có thể sử dụng hàm lambda; hoặc bạn có thể sử dụng hàm lambda để lọc ra các mục trong danh sách.