Hướng dẫn how many arguments can lambda take in python? - lambda có thể nhận bao nhiêu đối số trong python?

Chức năng Lambda trong Python là gì?

Hàm Lambda trong lập trình Python là một hàm ẩn danh hoặc một hàm không có tên. Đó là một chức năng nhỏ và bị hạn chế không có nhiều hơn một dòng. Giống như một hàm bình thường, hàm lambda có thể có nhiều đối số với một biểu thức.Lambda Function in Python programming is an anonymous function or a function having no name. It is a small and restricted function having no more than one line. Just like a normal function, a Lambda function can have multiple arguments with one expression.

Trong Python, các biểu thức lambda (hoặc các dạng lambda) được sử dụng để xây dựng các hàm ẩn danh. Để làm như vậy, bạn sẽ sử dụng từ khóa Lambda (giống như bạn sử dụng def để xác định các hàm bình thường). Mỗi chức năng ẩn danh bạn xác định trong Python sẽ có 3 phần thiết yếu:lambda keyword (just as you use def to define normal functions). Every anonymous function you define in Python will have 3 essential parts:

  • Từ khóa Lambda.
  • Các tham số (hoặc các biến ràng buộc) và
  • Các chức năng cơ thể.

Hàm Lambda có thể có bất kỳ số lượng tham số nào, nhưng cơ thể hàm chỉ có thể chứa một biểu thức. Hơn nữa, một lambda được viết trong một dòng mã duy nhất và cũng có thể được gọi ngay lập tức. Bạn sẽ thấy tất cả những điều này trong hành động trong các ví dụ sắp tới.one expression. Moreover, a lambda is written in a single line of code and can also be invoked immediately. You will see all this in action in the upcoming examples.

Trong Lambda trong hướng dẫn Python này, bạn sẽ học được:

  • Cú pháp và ví dụ
  • Sử dụng lambdas với python xây dựng
  • Lambdas trong bộ lọc ()
  • Lambdas trong bản đồ ()
  • Lambdas trong giảm ()
  • Tại sao (và tại sao không) sử dụng các hàm Lambda?
  • Lambdas so với các chức năng thông thường

Cú pháp và ví dụ

Sử dụng lambdas với python xây dựng

lambda p1, p2: expression

Lambdas trong bộ lọc ()

Lambdas trong bản đồ ()

Lambdas trong giảm ()

Tại sao (và tại sao không) sử dụng các hàm Lambda?

adder = lambda x, y: x + y
print (adder (1, 2))

Lambdas so với các chức năng thông thường

3

Cú pháp chính thức để viết hàm lambda được đưa ra dưới đây:

Ở đây, P1 và P2 là các tham số được truyền đến hàm Lambda. Bạn có thể thêm nhiều hoặc một vài tham số như bạn cần.

Tuy nhiên, lưu ý rằng chúng tôi không sử dụng dấu ngoặc xung quanh các tham số như chúng tôi làm với các chức năng thông thường. Phần cuối cùng (biểu thức) là bất kỳ biểu thức python hợp lệ nào hoạt động trên các tham số bạn cung cấp cho hàm. The lambda keyword used to define an anonymous function.

ví dụ 1 x and y are the parameters that we pass to the lambda function.

Bây giờ bạn đã biết về Lambdas, hãy thử nó với một ví dụ. Vì vậy, hãy mở IDLE của bạn và nhập các mục sau: This is the body of the function, which adds the 2 parameters we passed. Notice that it is a single expression. You cannot write multiple statements in the body of a lambda function.

Đây là đầu ra: We call the function and print the returned value.

Giải thích mã

Ở đây, chúng tôi xác định một biến sẽ giữ kết quả được trả về bởi hàm Lambda.

#What a lambda returns
string='some kind of a useless lambda'
print(lambda string : print(string))

1. Từ khóa Lambda được sử dụng để xác định hàm ẩn danh.

Output:

 at 0x00000185C3BF81E0>

2. X và Y là các tham số mà chúng ta chuyển đến hàm Lambda.

Cú pháp chính thức để viết hàm lambda được đưa ra dưới đây:

  1. Ở đây, P1 và P2 là các tham số được truyền đến hàm Lambda. Bạn có thể thêm nhiều hoặc một vài tham số như bạn cần.
  2. Tuy nhiên, lưu ý rằng chúng tôi không sử dụng dấu ngoặc xung quanh các tham số như chúng tôi làm với các chức năng thông thường. Phần cuối cùng (biểu thức) là bất kỳ biểu thức python hợp lệ nào hoạt động trên các tham số bạn cung cấp cho hàm.

ví dụ 1called by the print function but simply returning the function object and the memory location where it is stored. That’s what gets printed at the console.

Bây giờ bạn đã biết về Lambdas, hãy thử nó với một ví dụ. Vì vậy, hãy mở IDLE của bạn và nhập các mục sau:

Đây là đầu ra:

Giải thích mã

Ở đây, chúng tôi xác định một biến sẽ giữ kết quả được trả về bởi hàm Lambda.

Output:

some kind of a useless lambda

1. Từ khóa Lambda được sử dụng để xác định hàm ẩn danh.

Cú pháp chính thức để viết hàm lambda được đưa ra dưới đây:

  1. Ở đây, P1 và P2 là các tham số được truyền đến hàm Lambda. Bạn có thể thêm nhiều hoặc một vài tham số như bạn cần.
  2. Tuy nhiên, lưu ý rằng chúng tôi không sử dụng dấu ngoặc xung quanh các tham số như chúng tôi làm với các chức năng thông thường. Phần cuối cùng (biểu thức) là bất kỳ biểu thức python hợp lệ nào hoạt động trên các tham số bạn cung cấp cho hàm.

ví dụ 1

Bây giờ bạn đã biết về Lambdas, hãy thử nó với một ví dụ. Vì vậy, hãy mở IDLE của bạn và nhập các mục sau:

#A REGULAR FUNCTION
def guru( funct, *args ):
funct( *args )
def printer_one( arg ):
return print (arg)
def printer_two( arg ):
print(arg)
#CALL A REGULAR FUNCTION 
guru( printer_one, 'printer 1 REGULAR CALL' )
guru( printer_two, 'printer 2 REGULAR CALL \n' )
#CALL A REGULAR FUNCTION THRU A LAMBDA
guru(lambda: printer_one('printer 1 LAMBDA CALL'))
guru(lambda: printer_two('printer 2 LAMBDA CALL'))

Đây là đầu ra:

Output:

Giải thích mã

Ở đây, chúng tôi xác định một biến sẽ giữ kết quả được trả về bởi hàm Lambda.

1. Từ khóa Lambda được sử dụng để xác định hàm ẩn danh.

2. X và Y là các tham số mà chúng ta chuyển đến hàm Lambda.

Cú pháp chính thức để viết hàm lambda được đưa ra dưới đây:

  1. Ở đây, P1 và P2 là các tham số được truyền đến hàm Lambda. Bạn có thể thêm nhiều hoặc một vài tham số như bạn cần.
  2. Tuy nhiên, lưu ý rằng chúng tôi không sử dụng dấu ngoặc xung quanh các tham số như chúng tôi làm với các chức năng thông thường. Phần cuối cùng (biểu thức) là bất kỳ biểu thức python hợp lệ nào hoạt động trên các tham số bạn cung cấp cho hàm.
  3. ví dụ 1
  4. Bây giờ bạn đã biết về Lambdas, hãy thử nó với một ví dụ. Vì vậy, hãy mở IDLE của bạn và nhập các mục sau:
  5. Đây là đầu ra:

Giải thích mãmap(), reduce(), and filter() in Python.

Sử dụng lambdas với python xây dựng

Các chức năng Lambda cung cấp một cách thanh lịch và mạnh mẽ để thực hiện các hoạt động bằng cách sử dụng các phương thức tích hợp trong Python. Có thể bởi vì Lambdas có thể được gọi ngay lập tức và được thông qua như một lập luận cho các chức năng này.

Iife ở Python Lambda

Iife là viết tắt của việc thực hiện chức năng ngay lập tức. Nó có nghĩa là một hàm Lambda có thể gọi được ngay khi nó được xác định. Hãy để hiểu điều này với một ví dụ; kích hoạt Idle của bạn và gõ vào sau: stands for immediately invoked function execution. It means that a lambda function is callable as soon as it is defined. Let’s understand this with an example; fire up your IDLE and type in the following:

 (lambda x: x + x)(2)

Đây là giải thích đầu ra và mã:

Khả năng của lambdas này được gọi ngay lập tức cho phép bạn sử dụng chúng bên trong các hàm như map () và giảm (). Nó rất hữu ích vì bạn có thể không muốn sử dụng các chức năng này một lần nữa.

Lambdas trong bộ lọc ()

Hàm 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ó thể là bất kỳ trình lặp như danh sách, bộ, bộ dữ liệu, v.v.

Các yếu tố sẽ được chọn dựa trên một số ràng buộc được xác định trước. Phải mất 2 tham số:

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

Ví dụ,

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

Ở đây, đầu ra:

adder = lambda x, y: x + y
print (adder (1, 2))
0

Giải thích mã:

1. Trong câu lệnh đầu tiên, chúng tôi xác định một danh sách được gọi là các chuỗi chứa một số số. In the first statement, we define a list called sequences which contains some numbers.

2. Ở đây, chúng tôi khai báo một biến có tên là Filtered_result, sẽ lưu trữ các giá trị được lọc được trả về bởi hàm Filter (). Here, we declare a variable called filtered_result, which will store the filtered values returned by the filter() function.

3. Hàm Lambda chạy trên từng yếu tố của danh sách và trả về true nếu nó lớn hơn 4. A lambda function which runs on each element of the list and returns true if it is greater than 4.

4. In kết quả được trả về bởi chức năng bộ lọc.Print the result returned by the filter function.

Lambdas trong bản đồ ()

Hàm bản đồ được sử dụng để áp dụng một hoạt động cụ thể cho mọi phần tử theo một chuỗi. Giống như Filter (), nó cũng mất 2 tham số:

  1. Một hàm xác định OP để thực hiện trên các phần tử
  2. Một hoặc nhiều chuỗi

Ví dụ: đây là một chương trình in hình vuông của các số trong một danh sách nhất định:

adder = lambda x, y: x + y
print (adder (1, 2))
1

Output:

adder = lambda x, y: x + y
print (adder (1, 2))
2

[KR1]

Giải thích mã:

  1. 1. Trong câu lệnh đầu tiên, chúng tôi xác định một danh sách được gọi là các chuỗi chứa một số số.
  2. 2. Ở đây, chúng tôi khai báo một biến có tên là Filtered_result, sẽ lưu trữ các giá trị được lọc được trả về bởi hàm Filter ().
  3. 3. Hàm Lambda chạy trên từng yếu tố của danh sách và trả về true nếu nó lớn hơn 4.
  4. 4. In kết quả được trả về bởi chức năng bộ lọc.

Lambdas trong bản đồ ()

Hàm bản đồ được sử dụng để áp dụng một hoạt động cụ thể cho mọi phần tử theo một chuỗi. Giống như Filter (), nó cũng mất 2 tham số:

Một hàm xác định OP để thực hiện trên các phần tửPerform the defined operation on the first 2 elements of the sequence.

Một hoặc nhiều chuỗiSave this result

Ví dụ: đây là một chương trình in hình vuông của các số trong một danh sách nhất định:Perform the operation with the saved result and the next element in the sequence.

Ở đây, chúng tôi xác định một danh sách được gọi là chuỗi chứa một số số.Repeat until no more elements are left.

Chúng tôi khai báo một biến có tên là Filtered_Result sẽ lưu trữ các giá trị được ánh xạ

  1. Một hàm Lambda chạy trên mỗi phần tử của danh sách và trả về bình phương của số đó.
  2. Một chuỗi (bất kỳ trình lặp như danh sách, bộ dữ liệu, v.v.)

Ví dụ,

adder = lambda x, y: x + y
print (adder (1, 2))
3

Ở đây, đầu ra:

adder = lambda x, y: x + y
print (adder (1, 2))
4

Giải thích mã:

  1. 1. Trong câu lệnh đầu tiên, chúng tôi xác định một danh sách được gọi là các chuỗi chứa một số số.
  2. 1. Trong câu lệnh đầu tiên, chúng tôi xác định một danh sách được gọi là các chuỗi chứa một số số.
  3. 2. Ở đây, chúng tôi khai báo một biến có tên là Filtered_result, sẽ lưu trữ các giá trị được lọc được trả về bởi hàm Filter ().
  4. 3. Hàm Lambda chạy trên từng yếu tố của danh sách và trả về true nếu nó lớn hơn 4.
  5. 4. In kết quả được trả về bởi chức năng bộ lọc.

Lambdas trong bản đồ ()

Hàm bản đồ được sử dụng để áp dụng một hoạt động cụ thể cho mọi phần tử theo một chuỗi. Giống như Filter (), nó cũng mất 2 tham số:

Một hàm xác định OP để thực hiện trên các phần tử

Một hoặc nhiều chuỗi

Ví dụ: đây là một chương trình in hình vuông của các số trong một danh sách nhất định:

Ở đây, chúng tôi xác định một danh sách được gọi là chuỗi chứa một số số.

Chúng tôi khai báo một biến có tên là Filtered_Result sẽ lưu trữ các giá trị được ánh xạ

Lambdas so với các chức năng thông thường

Như đã nêu trước đây, Lambdas là [VV4] [J5] chỉ các chức năng không có định danh bị ràng buộc với chúng. Nói một cách đơn giản hơn, chúng là các chức năng không có tên (do đó, ẩn danh). Dưới đây là một bảng để minh họa sự khác biệt giữa Lambdas và các chức năng thường xuyên trong Python.

Lambdas

Chức năng thường xuyên

Syntax:

adder = lambda x, y: x + y
print (adder (1, 2))
5

Syntax:

adder = lambda x, y: x + y
print (adder (1, 2))
6

Các chức năng Lambda chỉ có thể có một biểu hiện trong cơ thể của chúng.

Các chức năng thường xuyên có thể có nhiều biểu thức và tuyên bố trong cơ thể của họ.

Lambdas không có tên liên quan đến chúng. Đó là lý do tại sao chúng còn được gọi là chức năng ẩn danh.

Các chức năng thường xuyên phải có tên và chữ ký.

Lambdas không chứa câu lệnh trả lại vì cơ thể được tự động trả lại.

Các chức năng cần trả lại giá trị nên bao gồm một câu lệnh trả về.

Giải thích về sự khác biệt?

Sự khác biệt chính giữa LambDA và hàm chính quy là hàm LambDA chỉ đánh giá một biểu thức duy nhất và mang lại một đối tượng hàm. Do đó, chúng ta có thể đặt tên cho kết quả của hàm Lambda và sử dụng nó trong chương trình của chúng ta như chúng ta đã làm trong ví dụ trước.

Một chức năng thông thường cho ví dụ trên sẽ trông như thế này:

adder = lambda x, y: x + y
print (adder (1, 2))
7

Ở đây, chúng ta phải xác định tên cho hàm trả về kết quả khi chúng ta gọi nó. Một hàm Lambda không chứa câu lệnh trả về vì nó sẽ chỉ có một biểu thức duy nhất luôn được trả về theo mặc định. Bạn thậm chí còn phải gán một lambda vì nó có thể được gọi ngay lập tức (xem phần tiếp theo). Như bạn sẽ thấy trong ví dụ sau, Lambdas trở nên đặc biệt mạnh mẽ khi chúng ta sử dụng chúng với các chức năng tích hợp của Python.name for the function which returns the result when we call it. A lambda function doesn’t contain a return statement because it will have only a single expression which is always returned by default. You don’t even have to assign a lambda either as it can be immediately invoked (see the next section). As you will see in the following example, lambdas become particularly powerful when we use them with Python’s built-in functions.

Tuy nhiên, bạn vẫn có thể tự hỏi làm thế nào lambdas khác với một hàm trả về một biểu thức duy nhất (như trên trên). Ở cấp độ phiên dịch, không có nhiều sự khác biệt. Nghe có vẻ đáng ngạc nhiên, nhưng bất kỳ chức năng Lambda nào mà bạn xác định trong Python đều được người phiên dịch coi là chức năng bình thường.

Như bạn có thể thấy trong sơ đồ, hai định nghĩa được xử lý theo cùng một cách bởi trình thông dịch Python khi được chuyển đổi thành mã byte. Bây giờ, bạn không thể đặt tên cho một chức năng Lambda vì nó được đặt trước bởi Python, nhưng bất kỳ tên hàm nào khác sẽ mang lại cùng một mã byte [KR6].lambda because it is reserved by Python, but any other function name will yield the same bytecode[KR6].

Bản tóm tắt

  • Lambdas, còn được gọi là các hàm ẩn danh, là các hàm nhỏ, bị hạn chế không cần tên (tức là, một định danh).
  • Mỗi chức năng Lambda trong Python có 3 phần thiết yếu:
  • Từ khóa Lambda.
  • Các tham số (hoặc các biến ràng buộc) và
  • Các chức năng cơ thể.
  • Cú pháp để viết Lambda là: tham số Lambda: Biểu thức
  • Lambdas có thể có bất kỳ số lượng tham số nào, nhưng chúng không được đặt trong niềng răng
  • Một lambda chỉ có thể có 1 biểu thức trong cơ thể chức năng của nó, được trả về theo mặc định.
  • Ở cấp độ byte, không có nhiều sự khác biệt giữa cách xử lý của Lambdas và các chức năng thông thường được xử lý bởi trình thông dịch.
  • Lambdas Hỗ trợ iife Thru Cú pháp này: (tham số Lambda: Biểu thức) (Đối số)
  • Lambdas thường được sử dụng với các bản dựng Python sau:
  • Bộ lọc: Bộ lọc (tham số Lambda: Biểu thức, Chuỗi có thể điều chỉnh được)
  • Bản đồ: Bản đồ (tham số Lambda: Biểu thức, Trình tự ITEBELE)
  • Giảm: Giảm (tham số lambda1, tham số2: Biểu thức, chuỗi có thể điều chỉnh được)
  • Không viết các chức năng Lambda phức tạp trong môi trường sản xuất vì nó sẽ khó khăn cho người bảo trì mã.

[J5] Tôi đã thêm một bảng, nhưng lời giải thích là cần thiết để hiểu sự khác biệt.

Lambda có thể có nhiều đối số không?

Một hàm Lambda có thể có nhiều đối số như bạn cần sử dụng, nhưng cơ thể phải là một biểu thức duy nhất., but the body must be one single expression.

Lambda có thể lấy hai đối số python không?

Hàm Lambda trong Python là gì?Hàm Lambda là một hàm ẩn danh (nghĩa là được xác định mà không có tên) có thể lấy bất kỳ số lượng đối số nào, nhưng, không giống như các hàm bình thường, đánh giá và chỉ trả về một biểu thức.can take any number of arguments but, unlike normal functions, evaluates and returns only one expression.

Một chức năng Lambda có thể có bao nhiêu tham số?

Lambda với nhiều tham số.Như đã đề cập trước đó, hàm Lambda có khả năng xử lý tối đa 253 tham số.up to 253 parameters.

Python Lambda có thể có nhiều tuyên bố không?

Các hàm Lambda không cho phép nhiều câu lệnh, tuy nhiên, chúng ta có thể tạo hai hàm Lambda và sau đó gọi hàm Lambda khác là tham số cho hàm đầu tiên., however, we can create two lambda functions and then call the other lambda function as a parameter to the first function.