Lambda functions

Python ระดับกลางสำหรับนักพัฒนา

Jasmin Ludolf

Senior Data Science Content Developer

ฟังก์ชันแบบง่าย

def average(values):
    average_value = sum(values) / len(values)
    return average_value
Python ระดับกลางสำหรับนักพัฒนา

Lambda functions

  • คีย์เวิร์ด lambda
    • แทน ฟังก์ชันนิรนาม

 

lambda
Python ระดับกลางสำหรับนักพัฒนา

Lambda functions

  • คีย์เวิร์ด lambda
    • แทน ฟังก์ชันนิรนาม

 

lambda arguments
Python ระดับกลางสำหรับนักพัฒนา

Lambda functions

  • คีย์เวิร์ด lambda
    • แทน ฟังก์ชันนิรนาม

 

lambda arguments:
Python ระดับกลางสำหรับนักพัฒนา

Lambda functions

  • คีย์เวิร์ด lambda
    • แทน ฟังก์ชันนิรนาม

$$

lambda arguments: expression
  • ใช้ x เป็นชื่ออาร์กิวเมนต์เดี่ยวตามธรรมเนียม
  • expression ทำหน้าที่เทียบเท่า body ของฟังก์ชัน
  • ไม่ต้องใช้คำสั่ง return

$$

  • สามารถเก็บเป็นตัวแปรได้
Python ระดับกลางสำหรับนักพัฒนา

การสร้าง lambda function

# Lambda average function
print(lambda x: sum(x) / len(x))



<function <lambda> at 0x7f11ab813d80>
# Custom average function
def average(x):
    return sum(x) / len(x)  

print(average)
<function average at 0x7f11ab813ec0>
Python ระดับกลางสำหรับนักพัฒนา

การใช้ lambda functions

# Get the average
(lambda x: sum(x) / len(x))
Python ระดับกลางสำหรับนักพัฒนา

การใช้ lambda functions

# Get the average
(lambda x: sum(x) / len(x))([3, 6, 9])

$$

$$

# Print the average
print((lambda x: sum(x) / len(x))([3, 6, 9]))
6.0
Python ระดับกลางสำหรับนักพัฒนา

การเก็บและเรียกใช้ lambda function

# Store lambda function as a variable
average = lambda x: sum(x) / len(x)

# Call the average function print(average([3, 6, 9]))
6.0
Python ระดับกลางสำหรับนักพัฒนา

หลายพารามิเตอร์

# Lambda function with two arguments
power = lambda x, y: x**y


# Raise 2 to the power of 3 print(power(2, 3))
8
Python ระดับกลางสำหรับนักพัฒนา

Lambda functions กับ iterable

  • map() ใช้ฟังก์ชันกับทุกองค์ประกอบใน iterable
names = ["john", "sally", "leah"]

# Apply a lambda function inside map() capitalize = map(lambda x: x.capitalize(), names)
print(capitalize)
<map object at 0x7fb200529c10>
# Convert to a list
print(list(capitalize))
['John', 'Sally', 'Leah']
Python ระดับกลางสำหรับนักพัฒนา

Custom vs. lambda functions

สถานการณ์ ประเภทฟังก์ชัน
งานซับซ้อน Custom
ใช้งานซ้ำหลายครั้ง Custom
ใช้งานครั้งเดียว Lambda
งานง่าย Lambda
Python ระดับกลางสำหรับนักพัฒนา

มาฝึกกันเถอะ!

Python ระดับกลางสำหรับนักพัฒนา

Preparing Video For Download...