Hàm lambda

Python trung cấp dành cho nhà phát triển

Jasmin Ludolf

Senior Data Science Content Developer

Hàm đơn giản

def average(values):
    average_value = sum(values) / len(values)
    return average_value
Python trung cấp dành cho nhà phát triển

Hàm lambda

  • Từ khóa lambda
    • Biểu diễn một hàm ẩn danh

 

lambda
Python trung cấp dành cho nhà phát triển

Hàm lambda

  • Từ khóa lambda
    • Biểu diễn một hàm ẩn danh

 

lambda arguments
Python trung cấp dành cho nhà phát triển

Hàm lambda

  • Từ khóa lambda
    • Biểu diễn một hàm ẩn danh

 

lambda arguments:
Python trung cấp dành cho nhà phát triển

Hàm lambda

  • Từ khóa lambda
    • Biểu diễn một hàm ẩn danh

$$

lambda arguments: expression
  • Quy ước: dùng x cho một đối số
  • expression tương đương phần thân hàm
  • Không cần câu lệnh return

$$

  • Có thể lưu vào biến
Python trung cấp dành cho nhà phát triển

Tạo hàm lambda

# Hàm lambda tính trung bình
print(lambda x: sum(x) / len(x))



<function <lambda> at 0x7f11ab813d80>
# Hàm trung bình tùy chỉnh
def average(x):
    return sum(x) / len(x)  

print(average)
<function average at 0x7f11ab813ec0>
Python trung cấp dành cho nhà phát triển

Dùng hàm lambda

# Lấy giá trị trung bình
(lambda x: sum(x) / len(x))
Python trung cấp dành cho nhà phát triển

Dùng hàm lambda

# Lấy giá trị trung bình
(lambda x: sum(x) / len(x))([3, 6, 9])

$$

$$

# In giá trị trung bình
print((lambda x: sum(x) / len(x))([3, 6, 9])))
6.0
Python trung cấp dành cho nhà phát triển

Lưu và gọi hàm lambda

# Lưu hàm lambda vào biến
average = lambda x: sum(x) / len(x)

# Gọi hàm average print(average([3, 6, 9]))
6.0
Python trung cấp dành cho nhà phát triển

Nhiều tham số

# Hàm lambda với hai đối số
power = lambda x, y: x**y


# Lũy thừa 2 mũ 3 print(power(2, 3))
8
Python trung cấp dành cho nhà phát triển

Hàm lambda với iterable

  • map() áp dụng một hàm cho tất cả phần tử trong iterable
names = ["john", "sally", "leah"]

# Áp dụng hàm lambda trong map() capitalize = map(lambda x: x.capitalize(), names)
print(capitalize)
<map object at 0x7fb200529c10>
# Chuyển thành danh sách
print(list(capitalize))
['John', 'Sally', 'Leah']
Python trung cấp dành cho nhà phát triển

Hàm tùy chỉnh vs. lambda

Tình huống Loại hàm
Nhiệm vụ phức tạp Tùy chỉnh
Lặp lại cùng nhiệm vụ Tùy chỉnh
Thực hiện một lần Lambda
Nhiệm vụ đơn giản Lambda
Python trung cấp dành cho nhà phát triển

Ayo berlatih!

Python trung cấp dành cho nhà phát triển

Preparing Video For Download...