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ường2. 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
2nội dung
- Hàm Lambda trong Python là gì?
- Cú pháp hàm Lambda
- Cần các hàm Lambda
- Cách sử dụng hàm lambda. Ví dụ đơn giản
- Bên trong, cả hai hàm lambda và def đều hoạt động giống hệt nhau
- Các hàm lambda có thể có 0 hoặc 1 biểu thức, không nhiều hơn
- Hàm Lambda có thể được gọi ngay lập tức
- Có thể viết các hàm bậc cao hơn bằng lambda
- 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
- Bạn có thể sử dụng chức năng
9 trong# calculate squares using def def squares_def[x]: return x*x print['Using def: ', squares_def[5]]
6Using def: 25
- Bạn có thể sử dụng chức năng
9 trong# calculate squares using def def squares_def[x]: return x*x print['Using def: ', squares_def[5]]
8Using def: 25
- Bạn cũng có thể sử dụng chức năng
9 trong# calculate squares using def def squares_def[x]: return x*x print['Using def: ', squares_def[5]]
20# calculate squares using def def squares_def[x]: return x*x print['Using def: ', squares_def[5]]
- Cách sử dụng hàm lambda để thao tác Dataframe
- Sự kết luận
3. Cần các hàm Lambda
Có ít nhất 3 lý do
- 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
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# calculate squares using def def squares_def[x]: return x*x print['Using def: ', squares_def[5]]
- 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ư
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.# calculate squares using def def squares_def[x]: return x*x print['Using def: ', squares_def[5]]
- 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
8 .# calculate squares using def def squares_def[x]: return x*x print['Using def: ', squares_def[5]]
- 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
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]]
2Chú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____3Thấ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
4Using def: 25
5Cả hai đều thuộc lớp
Using def: 25
65. 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ẫnUsing def: 25
9Using def: 25
0Mã 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]]
20Using def: 25
0Xem 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
- 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í
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- 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]]
257. 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]]
278. 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]]
28Thấ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 func9. 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]]
29Danh 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]]
0Danh 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]]
12. đố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]]
210. 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
# calculate squares using def
def squares_def[x]:
return x*x
print['Using def: ', squares_def[5]]
Using def: 25
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]]
311. 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
# calculate squares using def
def squares_def[x]:
return x*x
print['Using def: ', squares_def[5]]
Using def: 25
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]]
412. 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
# calculate squares using def
def squares_def[x]:
return x*x
print['Using def: ', squares_def[5]]
# calculate squares using def
def squares_def[x]:
return x*x
print['Using def: ', squares_def[5]]
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]]
5Thấ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]]
6FirstSecondThirdForth012361456120
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]]
7FirstSecondThirdForth014936116253614400
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