Làm thế nào để bạn gọi một hàm lambda trong python?

Hàm Lambda, còn được gọi là 'Hàm ẩn danh' giống như hàm python thông thường nhưng có thể được xác định mà không cần tên

1. Hàm Lambda trong Python là gì?

Hàm Lambda, còn được gọi là 'Hàm ẩn danh' giống như hàm python thông thường nhưng có thể được xác định mà không cần tên. Trong khi các chức năng bình thường được xác định bằng từ khóa

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
8, các chức năng ẩn danh được xác định bằng từ khóa
# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
9. Tuy nhiên, chúng bị giới hạn trong một dòng biểu thức. Chúng có thể nhận nhiều tham số như trong các hàm thông thường

2. Cú pháp hàm Lambda

Cú pháp cho hàm

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
9 được đưa ra bởi.
Using def:  25
1 Lưu ý, có thể có bất kỳ số lượng đối số nào nhưng chỉ có thể chứa một biểu thức duy nhất. Không có câu lệnh
Using def:  25
2 thường có trong cú pháp hàm
# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
8. Hàm sẽ chỉ trả về giá trị biểu thức ngay cả khi không có câu lệnh
Using def:  25
2

nội dung

  1. Hàm Lambda trong Python là gì?
  2. Cú pháp hàm Lambda
  3. Cần các hàm Lambda
  4. Cách sử dụng hàm lambda. Ví dụ đơn giản
  5. Bên trong, cả hai hàm lambda và def đều hoạt động giống hệt nhau
  6. Các hàm lambda có thể có 0 hoặc 1 biểu thức, không nhiều hơn
  7. Hàm Lambda có thể được gọi ngay lập tức
  8. Có thể viết các hàm bậc cao hơn bằng lambda
  9. Các hàm lambda chấp nhận tất cả các loại đối số, giống như hàm def bình thường
  10. Bạn có thể sử dụng chức năng
    # calculate squares using def
    def squares_def(x):
        return x*x
    print('Using def: ', squares_def(5))
    
    9 trong
    Using def:  25
    
    6
  11. Bạn có thể sử dụng chức năng
    # calculate squares using def
    def squares_def(x):
        return x*x
    print('Using def: ', squares_def(5))
    
    9 trong
    Using def:  25
    
    8
  12. Bạn cũng có thể sử dụng chức năng
    # calculate squares using def
    def squares_def(x):
        return x*x
    print('Using def: ', squares_def(5))
    
    9 trong
    # calculate squares using def
    def squares_def(x):
        return x*x
    print('Using def: ', squares_def(5))
    
    20
  13. Cách sử dụng hàm lambda để thao tác Dataframe
  14. Sự kết luận

3. Cần các hàm Lambda

Có ít nhất 3 lý do

    1. Các hàm lambda giảm số lượng dòng mã khi so sánh với hàm python thông thường được xác định bằng từ khóa
      # calculate squares using def
      def squares_def(x):
          return x*x
      print('Using def: ', squares_def(5))
      
      8. Nhưng điều này không hoàn toàn đúng bởi vì, ngay cả các hàm được định nghĩa bằng
      # calculate squares using def
      def squares_def(x):
          return x*x
      print('Using def: ', squares_def(5))
      
      8 cũng có thể được định nghĩa trong một dòng duy nhất. Nhưng nói chung, các hàm
      # calculate squares using def
      def squares_def(x):
          return x*x
      print('Using def: ', squares_def(5))
      
      8 được viết trong hơn 1 dòng
    2. Chúng thường được sử dụng khi tạm thời cần một chức năng trong thời gian ngắn, thường được sử dụng bên trong một chức năng khác, chẳng hạn như
      # calculate squares using def
      def squares_def(x):
          return x*x
      print('Using def: ', squares_def(5))
      
      24 ,
      # calculate squares using def
      def squares_def(x):
          return x*x
      print('Using def: ', squares_def(5))
      
      25 and
      # calculate squares using def
      def squares_def(x):
          return x*x
      print('Using def: ', squares_def(5))
      
      26.
    3. Sử dụng hàm lambda, bạn có thể định nghĩa một hàm và gọi nó ngay khi kết thúc định nghĩa. Điều này không thể thực hiện được với các hàm
      # calculate squares using def
      def squares_def(x):
          return x*x
      print('Using def: ', squares_def(5))
      
      8 .

Hãy xem thêm về cách triển khai chúng trong python

4. Cách sử dụng hàm lambda. Ví dụ đơn giản

Bạn không cần chỉ định tên cho hàm như đã thảo luận ở trên về cú pháp của hàm

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
9. Hãy thử xác định một hàm để tính bình phương của các giá trị đã cho

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
1
# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
2

Chúng ta cũng hãy xem cách thực hiện chức năng tương tự bằng cách sử dụng từ khóa

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
8 và so sánh chúng

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))

đầu ra

Using def:  25

Làm tương tự trong một dòng

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
2____3

Thấy rằng trong khi sử dụng từ khóa

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
8, chúng tôi đang trả về một giá trị nhất định
Using def:  25
1. Trong trường hợp hàm
# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
9, biểu thức
Using def:  25
1 sẽ được trả về mà không cần viết câu lệnh trả về rõ ràng. Nói chung trong sử dụng thông thường, không có nhiều khác biệt khi sử dụng từ khóa
# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
8 và
# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
9. Trên thực tế, cả hai đều có chức năng. Hãy xem các loại của họ

Using def:  25
4
Using def:  25
5

Cả hai đều thuộc lớp

Using def:  25
6

5. Bên trong, cả hai hàm lambda và def đều hoạt động giống hệt nhau

Để kiểm tra cách chúng hoạt động bên trong, hãy sử dụng từ khóa

Using def:  25
7. Từ khóa
Using def:  25
7 sẽ hiển thị phiên bản mã byte python có thể đọc được cho phép kiểm tra hướng dẫn

Using def:  25
9
Using def:  25
0

Mã byte cho chức năng `def` thông thường

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
20
Using def:  25
0

Xem rằng quy trình được thực hiện bởi cả hai chức năng là hoàn toàn giống nhau. Vì vậy, không có sự khác biệt thực sự trong cách họ thực hiện.  

6. Các hàm lambda có thể có 0 hoặc 1 biểu thức, không nhiều hơn

  1. Không có biểu hiện. không chứa biểu thức nào, sẽ cho kết quả giống nhau cho tất cả các đối số
# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
22

đầu ra

Nhận khóa học Python hoàn chỉnh miễn phí

Đối mặt với tình huống tương tự như những người khác?

Xây dựng sự nghiệp khoa học dữ liệu của bạn với bằng cấp được ngành công nhận trên toàn cầu. Có được tư duy, sự tự tin và các kỹ năng khiến Nhà khoa học dữ liệu trở nên có giá trị

Nhận khóa học Python miễn phí

Làm thế nào để bạn gọi một hàm lambda trong python?

Nhận khóa học Python hoàn chỉnh miễn phí

Xây dựng sự nghiệp khoa học dữ liệu của bạn với bằng cấp được ngành công nhận trên toàn cầu. Có được tư duy, sự tự tin và các kỹ năng khiến Nhà khoa học dữ liệu trở nên có giá trị

Nhận khóa học Python miễn phí

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
23
  1. Biểu thức đơn. Chúng có thể chứa một biểu thức hoặc không có biểu thức nào. Chúng ta không thể đặt nhiều hơn một biểu thức trong hàm lambda
# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
24
# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
25

7. Hàm Lambda có thể được gọi ngay lập tức

Bạn có thể triển khai hàm lambda mà không cần sử dụng tên biến. Bạn cũng có thể chuyển trực tiếp các giá trị đối số vào hàm

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
9 ngay sau khi xác định nó bằng cách sử dụng dấu ngoặc đơn. Điều này không thể được thực hiện bằng cách sử dụng các hàm
# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
8

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
26

Điều này không hoạt động với chức năng

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
8

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
27

8. Có thể viết các hàm bậc cao hơn bằng lambda

Một hàm lambda có thể lấy một hàm khác làm đối số. Hãy xem ví dụ về hàm lambda lồng nhau, hàm lambda bên trong hàm lambda khác

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
28

Thấy rằng tôi đã chuyển một hàm lambda khác để tính bình phương làm đối số cho biến

Using def:  25
42 func

9. Các hàm lambda chấp nhận tất cả các loại đối số, giống như hàm def bình thường

Hàm

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
9 hỗ trợ tất cả các loại đối số giống như hàm
# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
8 bình thường. 1. Đối số từ khóa.
Using def:  25
45 là một đối số đứng trước một mã định danh (e. g. name=) trong một lệnh gọi hàm. Đối số được đặt tên. Thí dụ

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
29

Danh sách biến của các đối số. Thí dụ

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
0

Danh sách biến của các đối số từ khóa. Thí dụ

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
1

2. đối số vị trí.

Using def:  25
46 là một đối số không phải là đối số từ khóa

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
2

10. Bạn có thể sử dụng chức năng # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) 9 trong Using def: 25 6

Hàm

Using def:  25
6 được sử dụng để lọc một đối tượng có thể lặp lại nhất định (danh sách giống như đối tượng) bằng cách sử dụng một hàm khác xác định logic lọc. Hàm lambda thường được sử dụng để xác định logic lọc và được chuyển thành đối số đầu tiên của
Using def:  25
6. Một iterable giống như một đối tượng danh sách được truyền dưới dạng đối số thứ hai cho hàm
# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
24

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
3

11. Bạn có thể sử dụng chức năng # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) 9 trong Using def: 25 8

Hàm ________ 38 áp dụng một hàm đã cho cho tất cả các mục trong danh sách và trả về kết quả. Tương tự như

Using def:  25
6, chỉ cần chuyển hàm lambda và danh sách (hoặc bất kỳ có thể lặp lại nào, như tuple) làm đối số

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
4

12. Bạn cũng có thể sử dụng chức năng # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) 9 trong # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) 20

Hàm

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
20 thực hiện thao tác lặp lại trên các cặp phần tử trong danh sách. Truyền hàm
# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
9 và danh sách làm đối số cho hàm
# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
20. Để sử dụng hàm
# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
20, bạn cần nhập
# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
26 từ thư viện
Using def:  25
93

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
5

Thấy rằng hàm

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
20 lặp đi lặp lại trên các phần tử trong danh sách.
Using def:  25
95, v.v.

13. Cách sử dụng hàm lambda để thao tác Dataframe

Bạn cũng có thể thao tác các cột của khung dữ liệu bằng hàm

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
9. Đó là một ứng cử viên tuyệt vời để sử dụng bên trong phương thức
Using def:  25
97 của khung dữ liệu. Tôi sẽ cố gắng thêm một hàng mới vào khung dữ liệu trong phần này làm ví dụ

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
6

FirstSecondThirdForth012361456120

Khi được sử dụng với

Using def:  25
98, nó áp dụng hàm lambda cho mọi phần tử của khung dữ liệu

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
7

FirstSecondThirdForth014936116253614400

Sự kết luận

Hy vọng bạn đã rõ hàm lambda là gì và cách bạn có thể sử dụng nó trong các tình huống khác nhau. Hãy thử các bài tập sau để kiểm tra sự hiểu biết của bạn

Chúng ta có thể gọi hàm lambda trong Python không?

Hàm lambda Python hoạt động giống như một hàm bình thường đối với các đối số . Do đó, một tham số lambda có thể được khởi tạo với giá trị mặc định. tham số n lấy n bên ngoài làm giá trị mặc định. Hàm lambda Python có thể đã được viết là lambda x=n. print(x) và có cùng kết quả.

Hàm lambda() được gọi như thế nào?

Hàm Lambda, còn được gọi là ' Hàm ẩn danh ' giống như một hàm python thông thường nhưng có thể được định nghĩa mà không cần tên. Trong khi các chức năng thông thường được xác định bằng từ khóa def, thì các chức năng ẩn danh được xác định bằng từ khóa lambda. Tuy nhiên, chúng bị giới hạn trong một dòng biểu thức.

Hàm lambda hoạt động như thế nào trong Python?

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 . Lưu ý rằng, không giống như hàm thông thường, chúng tôi không bao quanh các tham số của hàm lambda bằng dấu ngoặc đơn.