ฟังก์ชัน Python Lambda เป็นฟังก์ชันบรรทัดเดียวที่ไม่ระบุตัวตน นิพจน์แลมบ์ดาใน Python มีประโยชน์สำหรับฟังก์ชันบรรทัดเดียวที่ไม่ต้องการชื่อ เช่น รายการกรอง การแปลงกรณีสตริง หรือการคูณตัวเลข
เมื่อคุณเขียนโปรแกรมที่จะทำงานที่คล้ายกันหลายครั้ง การทำโค้ดของคุณซ้ำนั้นไม่สามารถทำได้ เนื่องจากคุณจะต้องอัปเดตทุก ๆ อินสแตนซ์ หากคุณต้องการเปลี่ยนวิธีการทำงานของงาน ยิ่งโค้ดเบสของคุณมีขนาดใหญ่เท่าใด การเปลี่ยนแปลงเหล่านี้ก็จะยิ่งใช้เวลานานขึ้นเท่านั้น
นั่นเป็นจุดที่ฟังก์ชันมีประโยชน์ ใน Python มีฟังก์ชันประเภทพิเศษที่เรียกว่าฟังก์ชันนิรนาม ซึ่งช่วยให้คุณประกาศฟังก์ชันด่วนได้ นั่นคือ นิพจน์แลมบ์ดา
คู่มือนี้จะกล่าวถึงวิธีใช้ฟังก์ชันแลมบ์ดาใน Python เพื่อทำให้กระบวนการซ้ำๆ เป็นไปโดยอัตโนมัติ นอกจากนี้เรายังมีตัวอย่างการทำงานของแลมบ์ดา 2 ตัวอย่างเพื่อให้คุณมีเนื้อหาทั้งหมดที่จำเป็นสำหรับการเขียนของคุณเอง
ฟังก์ชันคืออะไร
ในการเขียนโปรแกรม ฟังก์ชันคือบล็อกของโค้ดที่ทำงานเฉพาะ
เหตุผลสำคัญประการหนึ่งที่ผู้เขียนโค้ดใช้ฟังก์ชันต่างๆ ก็คือ ช่วยลดการซ้ำซ้อนในโค้ดของตน หากคุณรวมโปรเซสไว้ในฟังก์ชัน คุณสามารถเรียกกระบวนการนี้ได้ทุกที่ในโปรแกรมของคุณ คุณไม่จำเป็นต้องทำซ้ำรหัสของคุณหลายครั้ง
นอกจากนี้ยังช่วยให้นักพัฒนาเขียนโค้ดที่บำรุงรักษาได้มากขึ้น หากคุณต้องการเปลี่ยนแปลงกระบวนการนั้น สิ่งที่คุณต้องทำคือแก้ไขฟังก์ชันของคุณ คุณไม่จำเป็นต้องทำการเปลี่ยนแปลงโค้ดหลายบรรทัดที่เพิ่งคัดลอกและวางในโปรแกรมของคุณ
นี่คือตัวอย่างของฟังก์ชันใน Python:
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
def say_hello(name): print("Hello there, " + name) say_hello("Arthur")
เมื่อเรารันโค้ดนี้ สิ่งต่อไปนี้จะถูกส่งกลับ:สวัสดี อาร์เธอร์
แม้ว่าฟังก์ชันเหล่านี้จะมีประโยชน์ แต่ถ้าคุณต้องการทำอะไรง่ายๆ เช่น ทำให้ทุกสตริงในรายการสตริงเป็นตัวพิมพ์เล็ก การเขียนฟังก์ชันนั้นค่อนข้างละเอียด คุณต้องกำหนดชื่อให้กับฟังก์ชันใหม่เพื่อให้โค้ดของคุณทำงานได้ นั่นคือที่มาของฟังก์ชันแลมบ์ดา
ฟังก์ชันแลมบ์ดาคืออะไร
ฟังก์ชันแลมบ์ดาเป็นประเภทของฟังก์ชันที่กำหนดโดยไม่มีชื่อ ฟังก์ชันเหล่านี้บางครั้งเรียกว่าฟังก์ชันที่ไม่ระบุชื่อ เนื่องจากไม่ต้องการชื่อ ในขณะที่ฟังก์ชันของเราก่อนหน้านี้มีชื่อ sayHello และถูกกำหนดโดยใช้ "def" ฟังก์ชัน lambda ไม่ต้องการชื่อและถูกกำหนดโดยใช้ "lambda"
ข้อได้เปรียบหลักของการใช้ฟังก์ชันแลมบ์ดาคือสามารถเขียนได้ในบรรทัดเดียว สิ่งนี้ทำให้ฟังก์ชันแลมบ์ดามีประโยชน์หากคุณมีกระบวนการที่รวดเร็วและต้องการดำเนินการหลายครั้ง ต่อไปนี้คือบางกรณีที่ฟังก์ชันแลมบ์ดาอาจเป็นประโยชน์:
- การคูณจำนวน
- การแปลงสตริงเป็นตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก
- การกรองรายการ
นี่คือไวยากรณ์สำหรับสร้างฟังก์ชันแลมบ์ดาใน Python:
name = lambda arguments: expression
ไม่จำกัดจำนวนอาร์กิวเมนต์ที่คุณสามารถระบุได้ด้วยฟังก์ชันแลมบ์ดา มาดูตัวอย่างกันเพื่อแสดงให้เห็นว่าฟังก์ชันแลมบ์ดาทำงานอย่างไรใน Python สมมติว่าเราต้องการคูณตัวเลขด้วยเจ็ด ในการทำเช่นนั้น เราสามารถใช้ฟังก์ชันต่อไปนี้:
def multiply_by_seven(number): return number * 7 print(multiply_by_seven(2))
เมื่อเราเรียกใช้รหัสนี้ ค่าต่อไปนี้จะถูกส่งกลับ:14
แม้ว่าโค้ดนี้จะใช้งานได้ แต่ก็ไม่ได้มีประสิทธิภาพเท่าที่ควร เราใช้โค้ดทั้งบรรทัดเพื่อกำหนดชื่อและอาร์กิวเมนต์สำหรับฟังก์ชันของเรา และโค้ดอีกบรรทัดหนึ่งในการคำนวณและคืนค่า เพื่อให้ฟังก์ชันของเรามีประสิทธิภาพมากขึ้น เราสามารถใช้ฟังก์ชันแลมบ์ดาได้
นี่คือฟังก์ชันแลมบ์ดาที่ทำงานเหมือนกับด้านบน:
multiply_by_seven = lambda n: n * 7 print(multiply_by_seven(2))
รหัสของเราส่งคืน:14. อย่างที่คุณเห็น ผลลัพธ์ของฟังก์ชันของเราเหมือนกัน ความแตกต่างคือเราใช้ฟังก์ชันแลมบ์ดาแทนฟังก์ชันปกติ ในกรณีนี้:
- แลมบ์ดา คีย์เวิร์ดระบุว่าเรากำลังประกาศฟังก์ชันแลมบ์ดา
- น เป็นอาร์กิวเมนต์สำหรับหน้าที่ของเรา
- n * 7 เป็นนิพจน์เดียวที่ระบุในฟังก์ชันแลมบ์ดาของเรา
ฟังก์ชัน Lambda ใช้เมื่อใด
ฟังก์ชัน Lambda มีการใช้งานที่หลากหลายใน Python ในตัวอย่างที่แล้ว เราสาธิตวิธีที่คุณสามารถใช้ฟังก์ชันแลมบ์ดาเพื่อคูณตัวเลขสองตัว แต่มีบางกรณีการใช้งานทั่วไปที่คุณควรทราบ
บ่อยครั้ง ฟังก์ชัน lambda ถูกใช้ควบคู่ไปกับฟังก์ชันในตัว เช่น reduce()
ฟังก์ชัน map()
ฟังก์ชันหรือ filter()
การทำงาน. บางครั้งฟังก์ชันแลมบ์ดาก็ใช้ร่วมกับการเข้าใจรายการเพื่อทำงานซ้ำๆ เช่นกัน
สมมติว่าเราเป็นเจ้าของร้านเบเกอรี่ และเราต้องการสร้างรายการพายทั้งหมดที่เราขายโดยพิจารณาจากรายชื่อขนมอบทั้งหมดที่เราขาย เราสามารถทำได้โดยใช้รหัสนี้:
baked_goods = ['Blondie', 'Chocolate Chip Cookie', 'Apple Pie', 'Pecan Pie', 'Blackberry Pie', 'Scone'] pies = filter(lambda pie: "Pie" in pie, baked_goods) print(list(pies))
รหัสของเราส่งคืน:
['Apple Pie', 'Pecan Pie', 'Blackberry Pie']
มาดูกันว่ามันทำงานอย่างไร ในบรรทัดแรกของรหัสของเรา เราได้ประกาศรายชื่อขนมอบ จากนั้น เราใช้ filter()
ฟังก์ชันกรองขนมอบทั้งหมดที่มีคำว่า "พาย" filter()
ฟังก์ชันช่วยให้เราทำซ้ำทุกรายการในรายการ "baked_goods" และกรองรายการที่ไม่ตรงตามเกณฑ์เฉพาะ
เราทำสิ่งนี้โดยกำหนดฟังก์ชันแลมบ์ดาซึ่งจะตรวจสอบว่าแต่ละสตริงมี "พาย" หรือไม่ และส่งคืนสตริงก็ต่อเมื่อสตริงนั้นมี "พาย" ในกรณีนี้ ฟังก์ชันแลมบ์ดาของเราคือ:
lambda pie: "Pie" in pie
คุณสามารถเห็นได้จากตัวอย่างนี้ว่าฟังก์ชัน Python lambda ไม่ต้องการชื่อ พวกเขาสามารถอยู่ในบรรทัด ซึ่งแตกต่างจากฟังก์ชันแบบเดิม หากรายการใดตรงตามเกณฑ์ นิพจน์แลมบ์ดาของเราจะคืนค่าเป็นจริง มิฉะนั้นจะไม่มีการคืนค่า
สุดท้าย เราแปลงตัวแปร "พาย" เป็นรายการและพิมพ์ลงในคอนโซล เราทำเช่นนี้เพราะ filter()
คืนค่าออบเจ็กต์ตัวกรองที่กำหนดเอง ดังนั้นหากต้องการดูพายของเรา เราจำเป็นต้องแปลงโดยใช้ list()
.
บทสรุป
ฟังก์ชัน Lambda หรือที่เรียกว่าฟังก์ชันที่ไม่ระบุชื่อ ช่วยให้คุณสามารถกำหนดฟังก์ชันโดยไม่มีชื่อได้ สิ่งเหล่านี้มีประโยชน์หากคุณต้องการดำเนินการหลายครั้งในโค้ดของคุณ
ตัวอย่างเช่น หากคุณต้องการคูณตัวเลขด้วยตัวเลขอื่น คุณอาจใช้ฟังก์ชันแลมบ์ดา หรือคุณสามารถใช้ฟังก์ชันแลมบ์ดาเพื่อกรองรายการในรายการ