Từ khóa lambda trong Python

ambda trong Python là từ khóa để xác định hàm ẩn danh. Như bạn có thể biết, người ta thường sử dụng từ khóa def để xác định một chức năng bình thường. Tương tự, từ khóa lambda được sử dụng khi bạn phải xác định một hàm ẩn danh. Do đó, một hàm ẩn danh còn được gọi là hàm lambda trong Python. Bạn có thể gọi các hàm lambda Python này ngay khi bạn xác định chúng

Cú pháp của Lambda trong Python

đối số lambda. sự diễn đạt

Bạn có thể sử dụng bao nhiêu đối số tùy thích trong hàm lambda, nhưng hàm này chỉ có thể có một biểu thức. Biểu thức này được đánh giá và trả về kết quả là. Hãy cùng xem một ví dụ để hiểu rõ hơn về khái niệm hàm lambda trong Python

Thí dụ. Sử dụng Hàm Lambda trong Python

def squ[x]

trả lại x*x

lambda_squ = lambda x. x*x

# In cả hai đầu ra

in[squ[7]]

in [lambda_squ [7]]

đầu ra

Như bạn có thể thấy ở đầu ra, cả hai hàm squ[] và lambda_squ đều hoạt động như dự định và cho cùng một kết quả. Tuy nhiên, trong khi định nghĩa hàm bình thường squ[], bạn phải mô tả hàm và truyền câu lệnh return để nhận kết quả. Mặt khác, khi sử dụng hàm lambda lambda_squ[], bạn không cần phải đưa ra câu lệnh return. Do đó, lambda trong Python cung cấp một cách đơn giản hơn để viết các hàm tạm thời và ngắn hơn

Khoa học dữ liệu MIỄN PHÍ với khóa học Python

Bắt đầu học Khoa học dữ liệu với Python MIỄN PHÍ Bắt đầu học

Tại sao chức năng Python Lambda được sử dụng?

Hàm Lambda trong Python được sử dụng vì nhiều lý do. Các ứng dụng chính của Python lambda là

  • Khi bạn muốn xác định các chức năng không tên tạm thời
  • Để chuyển nó làm đối số cho hàm bậc cao khác lấy hàm làm đối số
  • Để tạo một chức năng có thể gọi được ngay khi được xác định

Hàm nào trong Thư viện chuẩn Python tận dụng Lambdas?

Do có nhiều lợi ích và cách sử dụng các hàm lambda Python, bạn có thể sử dụng chúng với một số hàm tích hợp sẵn, chẳng hạn như

  • lọc[]
  • bản đồ[]
  • giảm[]

Hãy xem cách sử dụng Lambda trong Python với các hàm tích hợp này

Thí dụ. Sử dụng Hàm Lambda Python Với bộ lọc []

Đúng như tên gọi, hàm filter[] dùng để lọc các phần tử của dãy. Bạn có thể chuyển bất kỳ chuỗi nào, chẳng hạn như danh sách, bộ, bộ, v.v. Nó tính đến hai tham số

  • Hàm số. Chức năng cần áp dụng
  • Sự liên tiếp. Trình tự mà chức năng cần được áp dụng

Hàm filter[] của Python áp dụng hàm đã đề cập cho từng phần tử của chuỗi và trả về kết quả được lọc bao gồm các phần tử trả về true sau khi thực thi hàm

Trong đoạn mã dưới đây, bạn sẽ sử dụng hai chức năng bộ lọc []. Người đầu tiên chỉ nhận các số chia hết cho ba và người thứ hai chỉ nhận các số lớn hơn 50 từ danh sách

# Xác định danh sách

example_lst = [5, 21, 72, 102, 16, 123, 65, 85, 19, 90]

# Truyền hàm lambda

chia_lst = danh sách [bộ lọc [lambda i. [i%3 == 0],example_lst]]

in [chia_lst]

# Truyền hàm lambda thứ hai

lớn hơn_lst = danh sách [bộ lọc [lambda i. [i>50], ví dụ_lst]]

in [lớn hơn_lst]

đầu ra

Thí dụ. Sử dụng Hàm Lambda trong Python Với map[]

Hàm map[] trong Python được sử dụng để truyền một hàm qua từng mục trong một lần lặp. Giống như hàm filter[], thậm chí map[] cũng chấp nhận hai tham số giống nhau. chức năng và trình tự. Nó lặp qua chuỗi và áp dụng hàm đã chỉ định cho từng phần tử

Đối với ví dụ này, bạn sẽ sử dụng cùng một danh sách như ví dụ trước và hai hàm map[]. Cái đầu tiên sẽ áp dụng một hàm để cộng một số với chính nó và cái thứ hai để nhân một số với chính nó. Hãy kiểm tra những gì bạn nhận được như một đầu ra

# Xác định danh sách

example_lst = [5, 21, 72, 102, 16, 123, 65, 85, 19, 90]

# Truyền hàm lambda

duble_lst = [danh sách [bản đồ [lambda i. i*2, ví dụ_lst]]]

in [duble_lst]

# Truyền hàm lambda thứ hai

square_lst = [danh sách [bản đồ [lambda i. i*i, ví dụ_lst]]]

in[vuông_lst]

đầu ra

Thí dụ. Sử dụng Lambda trong Python Với reduce[]

Hàm reduce[] trong Python dùng để áp dụng một hàm cho từng phần tử của dãy đã chỉ định. Python 3, reduce[] đã trở thành một phần của mô-đun funcools. Do đó, bạn phải nhập mô-đun funcools để hoạt động với hàm reduce[]. Nó lại chấp nhận hai tham số. chức năng và trình tự

Đầu tiên nó sẽ áp dụng hàm cho hai phần tử đầu tiên của dãy. Tiếp theo, nó sẽ lấy kết quả của lần thực thi đầu tiên làm đối số đầu tiên và phần tử tiếp theo của dãy làm đối số thứ hai và áp dụng hàm cho chúng. Hàm reduce[] tiếp tục thực hiện việc này cho đến khi không còn phần tử nào trong chuỗi. Hãy xem một ví dụ để hiểu rõ hơn. Lấy danh sách tương tự trong mã bên dưới và hai hàm reduce[]. Hàm reduce[] đầu tiên sẽ thực hiện phép cộng và hàm thứ hai sẽ tìm ra số lớn nhất

từ funcools nhập giảm

# Xác định danh sách

example_lst = [5, 21, 72, 102, 16, 123, 65, 85, 19, 90]

# Truyền hàm lambda

sum_lst = giảm[[lambda i,j. i+j], ví dụ_lst]

in [sum_lst]

# Truyền hàm lambda thứ hai

max_value = reduce[[lambda i,j. i nếu tôi>j khác j], example_lst]

print["Số lớn nhất của danh sách là. ", kết thúc=""]

in [max_value]

đầu ra

Khi nào nên sử dụng Lambda trong Python?

Ở cấp độ trình thông dịch, ngay cả các hàm lambda cũng được coi là các hàm thông thường. Do đó, điều cần thiết là phải hiểu cái nào sẽ sử dụng khi. Thời điểm tốt nhất để sử dụng các hàm lambda trong Python là

  • Khi bạn muốn định nghĩa một hàm ngắn để sử dụng tạm thời
  • Trong khi xác định một hàm trả về một biểu thức
  • Khi bạn muốn tạo một hàm sử dụng một lần để chuyển làm đối số cho một hàm khác [ví dụ. sắp xếp[], sắp xếp[], tối thiểu[], tối đa[]]

Khi nào nên tránh các hàm Lambda trong Python?

Về cốt lõi, cách sử dụng lambda tốt nhất trong Python là để xác định các hàm sử dụng một lần ngắn hơn. Do đó, nếu mã đang trở nên quá phức tạp, tốt nhất là tránh nó

Mặc dù bạn có thể viết một mã phức tạp trong một câu bằng các hàm lambda, nhưng bạn nên xác định một hàm thông thường trong những trường hợp như vậy để làm cho mã của bạn đơn giản và dễ hiểu hơn

Bạn cũng nên tránh các hàm lambda trong Python nếu

  • Bạn nghĩ rằng bạn đang lạm dụng nó [thêm về nó sau trong bài viết này]
  • Nó không tuân theo hướng dẫn kiểu PEP 8
  • Nó trở nên cồng kềnh và không thể đọc được
  • Để nâng cao một ngoại lệ

Làm cách nào để kiểm tra Lambda bằng Python?

Kiểm tra mã của bạn bằng Python là điều cần thiết để đảm bảo rằng mã chạy đúng như ý muốn. Các hàm lambda trong Python có thể được kiểm tra theo cách giống như các hàm thông thường bằng cách sử dụng unittest và doctest

Thí dụ. Kiểm tra các hàm Lambda trong Python bằng cách sử dụng unittest

Bạn có thể sử dụng mô-đun unittest của Python để kiểm tra hàm lambda như một hàm thông thường. Trong đoạn mã bên dưới, bạn sẽ kiểm tra một hàm lambda đơn giản để nhân một số với hai bằng cách sử dụng mô-đun unittest

nhập khẩu unittest

mul_two = lambda x. x*2

lớp Test_Example[unittest. Trường hợp thử nghiệm]

def test_mul_three[self]

bản thân. khẳng địnhEqual[mul_two[3], 6]

def test_mul_four_point_ five[self]

bản thân. khẳng địnhEqual[mul_two[4. 5], 9. 0]

def test_mul_seven[self]

# Nên thất bại

bản thân. khẳng địnhEqual[mul_two[7], 13]

nếu __name__ == '__main__'

đơn vị nhất. chính [độ chi tiết = 2]

đầu ra

Như bạn có thể thấy trong đoạn mã trên và kết quả của nó, bạn đã định nghĩa một lớp Test_Example với ba hàm kiểm tra cho các kịch bản khác nhau cho hàm lambda mul_two. Như mong đợi, bạn nhận được hai kết quả OK và một FAIL. Kết quả OK cho các hàm test_mul_three và test_mul_four_point_ five vì câu trả lời là 6 và 9. 0, tương ứng. Mặt khác, đầu ra FAIL dành cho hàm test_mul_seven vì câu trả lời cho 7*2 là 14 chứ không phải 13

Thí dụ. Kiểm tra hàm Lambda trong Python bằng doctest

Bạn cũng có thể sử dụng mô-đun doctest để kiểm tra các hàm lambda. Tuy nhiên module doctest sử dụng docstring mà lambda ít hỗ trợ để test. Nhưng bạn có thể gán một chuỗi cho phần tử __doc__ để kiểm tra các hàm lambda. Hãy cùng xem xét ví dụ nhân một số với hai và kiểm tra nó bằng doctest

mul_two = lambda x. x*2

mul_hai. __doc__ = """Nhân một số với hai

>>> mul_two[3]

6

>>> mul_two[4. 5]

9. 0

>>> mul_two[7] # Sẽ thất bại

13

"""

nếu __name__ == '__main__'

nhập khẩu doctest

tài liệu. testmod[dài dòng=True]

đầu ra

Trong đoạn mã trên, bạn đã sử dụng cùng một trường hợp kiểm thử như đối với bài kiểm tra kém nhất và nhận được kết quả tương tự với hai lần kiểm tra đạt và một lần kiểm tra không đạt

Lạm dụng biểu thức Lambda có nghĩa là gì?

Lạm dụng biểu thức lambda có nghĩa là cố gắng khắc phục điều gì đó không được lambda hỗ trợ. Một ví dụ đơn giản là việc sử dụng mô-đun doctest mà bạn đã làm trong ví dụ trước. Một hàm lambda điển hình không hỗ trợ chuỗi tài liệu. Nhưng bạn vẫn vượt qua nó bằng cách sử dụng phần tử __doc__ và cố gắng vượt qua nó

Các ví dụ lạm dụng khác sẽ là

  • Cố gắng khắc phục thực tế là các hàm lambda không hỗ trợ các câu lệnh
  • Sửa một số dòng mã trong một dòng lambda và khiến nó khó đọc
  • Nâng cao một ngoại lệ

Khóa đào tạo Python

Tìm hiểu về thao tác dữ liệu trong Python Khám phá khóa học

Các lựa chọn thay thế cho Lambda trong Python là gì?

Hàm Lambda trong Python có một số lợi ích. Nhưng đôi khi, bạn có thể cần tránh sử dụng nó. Vì lý do này, điều cần thiết là phải biết về các lựa chọn thay thế cho hàm lambda, đó là khả năng hiểu danh sách và biểu thức trình tạo. Bạn có thể sử dụng các lựa chọn thay thế này với các chức năng bản đồ, bộ lọc và thu nhỏ

Thí dụ. Sử dụng các lựa chọn thay thế cho hàm Lambda trong Python cho map[]

Ví dụ dưới đây sử dụng hàm map[] với cả lambda và phương án thay thế của nó. hiểu danh sách. Ở đây, bạn sẽ viết hoa chữ cái đầu tiên của tất cả các từ

in [danh sách [bản đồ [lambda i. tôi. viết hoa[], ['ferrari', 'lamborghini', 'jeep']]]]

in[[tôi. viết hoa[] cho tôi trong ['ferrari', 'lamborghini', 'jeep']]]

đầu ra

Như bạn có thể thấy trong đầu ra ở trên, cả hai mã đều cho cùng một kết quả. Tuy nhiên, trong khi sử dụng hàm lambda, bạn phải chuyển đổi đối tượng thành danh sách để có thể đọc được. Mặt khác, trong khi sử dụng tính năng hiểu danh sách, bạn có thể in trực tiếp nó mà không cần chuyển đổi

Thí dụ. Sử dụng các lựa chọn thay thế cho Lambda trong Python cho Bộ lọc[]

Ví dụ bên dưới sử dụng hàm filter[] với cả lambda và khả năng hiểu danh sách và hàm range[] để tạo danh sách có số lẻ

in [danh sách [bộ lọc [lambda i. tôi%2. = 0, phạm vi [15]]]]

print[[i for i in range[15] if i%2. = 0]]

đầu ra

Trong đoạn mã trên, bạn phải chuyển đổi đối tượng hàm lambda thành một danh sách, nhưng khả năng hiểu danh sách đã cung cấp một cách hiệu quả để in cùng một kết quả

Thí dụ. Sử dụng các lựa chọn thay thế cho Hàm Lambda trong Python để giảm []

Đối với ví dụ này, bạn sẽ sử dụng ba cách khác nhau để chỉ cộng các số từ một cặp danh sách chữ và số. Phương pháp đầu tiên là sử dụng hàm lambda, phương pháp thứ hai là sử dụng biểu thức trình tạo và cách thứ ba là cách đơn giản hơn để sử dụng biểu thức trình tạo

nhập hàm

example_pairs = [[3, 'x'], [5, 'y'], [7, 'z']]

in [funcools. giảm [lambda acc, cặp. acc + pair[0], example_pairs, 0]]

example_pairs = [[3, 'x'], [5, 'y'], [7, 'z']]

print[sum[i[0] cho i trong example_pairs]]

example_pairs = [[3, 'x'], [5, 'y'], [7, 'z']]

print[sum[i cho i, _ trong example_pairs]]

đầu ra

Như bạn có thể thấy, đầu ra cho tất cả các cách đều giống nhau, nhưng biểu thức trình tạo mang lại hiệu quả cao hơn nhiều

Mong muốn chuyển sang lĩnh vực lập trình?

Tóm tắt nó lên

Trong bài viết này, bạn đã tìm hiểu mọi thứ về các hàm lambda ẩn danh trong Python. Bạn cũng đã thấy nơi nào nên sử dụng và nơi nào nên tránh chúng, cùng với các lựa chọn thay thế có sẵn. Biết khi nào và ở đâu để sử dụng lambda trong Python một cách hiệu quả sẽ giúp bạn xác định và sử dụng các hàm ngắn hạn để mã đơn giản hơn và nhanh hơn.  

Giống như lambda và hiểu danh sách, nhiều khái niệm lập trình Python khác có thể giúp bạn tiết kiệm rất nhiều thời gian khi viết mã. Bạn có thể tham khảo Hướng dẫn Python cho người mới bắt đầu của Simplilearn để làm quen với tất cả các khái niệm như vậy. Hơn nữa, nếu bạn muốn nâng cao, bạn có thể chọn tham gia Khóa học cấp chứng chỉ Python trực tuyến của chúng tôi để phát triển Python vượt trội. Bạn cũng có thể tham gia Khóa học cấp chứng chỉ Python về Khoa học dữ liệu của chúng tôi nếu bạn yêu thích phân tích dữ liệu hơn

Bạn có câu hỏi nào cho chúng tôi không? . Các chuyên gia của chúng tôi sẽ liên hệ lại với bạn sớm nhất

Thông tin về các Tác giả

đơn giản

Simplilearn là một trong những nhà cung cấp dịch vụ đào tạo trực tuyến hàng đầu thế giới về Tiếp thị kỹ thuật số, Điện toán đám mây, Quản lý dự án, Khoa học dữ liệu, CNTT, Phát triển phần mềm và nhiều công nghệ mới nổi khác

Tại sao bạn lại sử dụng lambda trong Python?

Sử dụng các hàm lambda khi cần một hàm ẩn danh trong một khoảng thời gian ngắn .

Hàm lambda trong Python với các ví dụ là gì?

Hàm Lambda trong Python là gì? . Đây là một chức năng nhỏ và hạn chế không có nhiều hơn một dòng. Giống như hàm thông thường, hàm Lambda có thể có nhiều đối số với một biểu thức. 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.

lambda được sử dụng để làm gì?

Lambda chạy mã của bạn trên cơ sở hạ tầng điện toán có tính sẵn sàng cao và thực hiện tất cả việc quản trị tài nguyên điện toán của bạn . Điều này bao gồm bảo trì máy chủ và hệ điều hành, cung cấp năng lực và tự động mở rộng quy mô, triển khai bản vá bảo mật và mã cũng như giám sát và ghi nhật ký mã.

Chủ Đề