Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ฟังก์ชัน Python Lambda:บทนำ

ฟังก์ชัน 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 หรือที่เรียกว่าฟังก์ชันที่ไม่ระบุชื่อ ช่วยให้คุณสามารถกำหนดฟังก์ชันโดยไม่มีชื่อได้ สิ่งเหล่านี้มีประโยชน์หากคุณต้องการดำเนินการหลายครั้งในโค้ดของคุณ

ตัวอย่างเช่น หากคุณต้องการคูณตัวเลขด้วยตัวเลขอื่น คุณอาจใช้ฟังก์ชันแลมบ์ดา หรือคุณสามารถใช้ฟังก์ชันแลมบ์ดาเพื่อกรองรายการในรายการ