Python lambda 2 chức năng

Thử tham gia các buổi đào tạo thực hành với hướng dẫn từng bước từ chuyên gia. Hãy thử dự án có hướng dẫn được thực hiện với sự cộng tác của Coursera ngay bây giờ

Bắt đầu

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

Sức mạnh của lambda được thể hiện rõ hơn khi bạn sử dụng chúng như một chức năng ẩn danh bên trong một chức năng khác

Giả sử bạn có một định nghĩa hàm nhận một đối số và đối số đó sẽ được nhân với một số không xác định

Một trong những điều tuyệt vời về Python là nó nói chung là một trong những ngôn ngữ lập trình trực quan nhất hiện có. Tuy nhiên, một số khái niệm có thể khó nắm bắt và hiểu. Hàm lambda là một trong số đó

tôi đã từng ở đó. Khi tôi mới bắt đầu học Python, tôi đã bỏ qua hàm lambda vì nó không rõ ràng đối với tôi. Nhưng với thời gian, tôi bắt đầu hiểu nó. Vì vậy, đừng lo lắng – nếu bạn cũng đang phải vật lộn với nó, tôi sẽ hỗ trợ bạn

Hướng dẫn này sẽ cho bạn biết hàm lambda là gì, khi nào nên sử dụng hàm này và chúng ta sẽ xem xét một số trường hợp sử dụng phổ biến trong đó hàm lambda thường được áp dụng. Không cần phải quảng cáo thêm, hãy bắt đầu

Hàm Lambda là gì?

Các hàm lambda tương tự như các hàm do người dùng định nghĩa nhưng không có tên. Chúng thường được gọi là các chức năng ẩn danh

Các hàm lambda hoạt động hiệu quả bất cứ khi nào bạn muốn tạo một hàm chỉ chứa các biểu thức đơn giản – tức là các biểu thức thường là một dòng của câu lệnh. Chúng cũng hữu ích khi bạn muốn sử dụng chức năng này một lần

Cách xác định hàm Lambda

Bạn có thể định nghĩa một hàm lambda như thế này

lambda argument(s) : expression
  1. def f(x):
      return x * 2
    
    f(3)
    >> 6
    
    1 là một từ khóa trong Python để xác định hàm ẩn danh
  2. def f(x):
      return x * 2
    
    f(3)
    >> 6
    
    2 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
  3. def f(x):
      return x * 2
    
    f(3)
    >> 6
    
    3 là mã bạn muốn thực thi trong hàm lambda

Lưu ý rằng hàm ẩn danh không có từ khóa trả về. Điều này là do hàm ẩn danh sẽ tự động trả về kết quả của biểu thức trong hàm sau khi nó được thực thi

Hãy xem một ví dụ về hàm lambda để xem nó hoạt động như thế nào. Chúng ta sẽ so sánh nó với một hàm thông thường do người dùng định nghĩa

Giả sử tôi muốn viết một hàm trả về gấp đôi số tôi truyền vào. Chúng ta có thể định nghĩa một hàm do người dùng định nghĩa như sau

def f(x):
  return x * 2

f(3)
>> 6

Bây giờ cho một chức năng lambda. Chúng ta sẽ tạo nó như thế này

lambda x: x * 3

Như tôi đã giải thích ở trên, hàm lambda không có từ khóa return. Kết quả là nó sẽ tự trả về kết quả của biểu thức. Dấu x trong đó cũng đóng vai trò là trình giữ chỗ cho giá trị được chuyển vào biểu thức. Bạn có thể thay đổi nó thành bất cứ điều gì bạn muốn

Bây giờ, nếu bạn muốn gọi một hàm lambda, bạn sẽ sử dụng một phương pháp được gọi là gọi hàm ngay lập tức. Trông như thế này

(lambda x : x * 2)(3)

>> 6

Lý do là vì hàm lambda không có tên mà bạn có thể gọi (nó ẩn danh), bạn cần gửi kèm theo toàn bộ câu lệnh khi muốn gọi nó

Khi nào bạn nên sử dụng hàm Lambda?

Bạn nên sử dụng hàm lambda để tạo các biểu thức đơn giản. Ví dụ: các biểu thức không bao gồm các cấu trúc phức tạp như if-else, for-loops, v.v.

Vì vậy, ví dụ, nếu bạn muốn tạo một hàm với vòng lặp for, bạn nên sử dụng hàm do người dùng định nghĩa

Các trường hợp sử dụng phổ biến cho Hàm Lambda

Cách sử dụng Hàm Lambda với Iterables

Một iterable về cơ bản là bất cứ thứ gì bao gồm một loạt các giá trị, chẳng hạn như ký tự, số, v.v.

Trong Python, iterables bao gồm chuỗi, danh sách, từ điển, phạm vi, bộ dữ liệu, v.v. Khi làm việc với iterables, bạn có thể sử dụng hàm lambda kết hợp với hai hàm phổ biến.

def f(x):
  return x * 2

f(3)
>> 6
4 và
def f(x):
  return x * 2

f(3)
>> 6
5

def f(x):
  return x * 2

f(3)
>> 6
6

Khi bạn muốn tập trung vào các giá trị cụ thể trong một lần lặp, bạn có thể sử dụng chức năng bộ lọc. Sau đây là cú pháp của hàm lọc

filter(function, iterable)

Như bạn có thể thấy, một hàm lọc yêu cầu một hàm khác chứa biểu thức hoặc các thao tác sẽ được thực hiện trên hàm lặp

Ví dụ: giả sử tôi có một danh sách chẳng hạn như

def f(x):
  return x * 2

f(3)
>> 6
7. Bây giờ, giả sử rằng tôi chỉ quan tâm đến những giá trị trong danh sách có số dư bằng 0 khi chia cho 2. Tôi có thể sử dụng
def f(x):
  return x * 2

f(3)
>> 6
4 và hàm lambda

Đầu tiên tôi sẽ sử dụng hàm lambda để tạo biểu thức mà tôi muốn dẫn xuất như thế này

lambda x: x % 2 == 0

Sau đó, tôi sẽ chèn nó vào chức năng lọc như thế này

list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
filter(lambda x: x % 2 == 0, list1)

>>  # The result is always filter object so I will need to convert it to list using list()

list(filter(lambda x: x % 2 == 0, list1))
>> [2, 4, 6, 8, 10]

def f(x):
  return x * 2

f(3)
>> 6
9

Bạn sử dụng hàm

def f(x):
  return x * 2

f(3)
>> 6
5 bất cứ khi nào bạn muốn sửa đổi mọi giá trị trong một lần lặp

map(function, iterable)

Ví dụ: giả sử tôi muốn nâng tất cả các giá trị trong danh sách bên dưới lên lũy thừa 2. Tôi có thể dễ dàng làm điều đó bằng cách sử dụng các hàm lambda và bản đồ như thế này

list1 = [2, 3, 4, 5]

list(map(lambda x: pow(x, 2), list1))
>> [4, 9, 16, 25]

Dòng gấu trúc

Một nơi khác bạn sẽ sử dụng hàm lambda là trong khoa học dữ liệu khi tạo khung dữ liệu từ Pandas. Một chuỗi là một cột khung dữ liệu. Bạn có thể thao tác tất cả các giá trị trong một chuỗi bằng cách sử dụng hàm lambda

Ví dụ: nếu tôi có khung dữ liệu với các cột sau và muốn chuyển đổi các giá trị trong cột tên thành chữ thường, tôi có thể thực hiện bằng cách sử dụng hàm áp dụng Pandas và hàm lambda Python như thế này

import pandas as pd

df = pd.DataFrame(
    {"name": ["IBRAHIM", "SEGUN", "YUSUF", "DARE", "BOLA", "SOKUNBI"],
     "score": [50, 32, 45, 45, 23, 45]
    }
)
Python lambda 2 chức năng
def f(x):
  return x * 2

f(3)
>> 6
0

Hàm áp dụng sẽ áp dụng từng phần tử của chuỗi cho hàm lambda. Sau đó, hàm lambda sẽ trả về một giá trị cho từng phần tử dựa trên biểu thức bạn đã truyền cho nó. Trong trường hợp của chúng tôi, biểu thức là viết thường từng phần tử

Python lambda 2 chức năng

Phần kết luận

Trong hướng dẫn này, bạn đã tìm hiểu kiến ​​thức cơ bản về hàm lambda và cách bạn có thể áp dụng hàm này một cách phổ biến. Cảm ơn bạn đã dành thời gian của bạn để đọc này

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO


Python lambda 2 chức năng
Ibrahim Abayomi Ogunbiyi

Tôi là một nhà khoa học dữ liệu nhiệt tình, thích phá vỡ và sửa chữa những thứ liên quan đến dữ liệu, đồng thời quan tâm đến dữ liệu một cách rõ ràng để cung cấp cho tôi thông tin chi tiết về những gì nó đang miêu tả


Nếu bạn đọc đến đây, hãy tweet cho tác giả để cho họ thấy bạn quan tâm. Tweet một lời cảm ơn

Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

Lambda có thể có nhiều chức năng không?

Ứng dụng serverless thường bao gồm nhiều hàm Lambda . Mỗi hàm Lambda chỉ có thể sử dụng một thời gian chạy nhưng bạn có thể sử dụng nhiều thời gian chạy cho nhiều hàm. Điều này cho phép bạn chọn thời gian chạy tốt nhất cho nhiệm vụ của hàm.

Lambda có thể trả về 2 giá trị Python không?

Hàm lambda là một hàm ẩn danh (i. e. , được xác định không có tên) có thể nhận bất kỳ số lượng đối số nào, nhưng không giống như các hàm thông thường, đánh giá và chỉ trả về một biểu thức .

Python lambda có thể có nhiều câu lệnh không?

Một hàm lambda có thể có bao nhiêu đối số mà bạn cần sử dụng, nhưng phần thân phải là một biểu thức duy nhất .

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

Hàm lambda có thể nhận bất kỳ số lượng đối số nào, nhưng chỉ có thể có một biểu thức .