ในโลกของการเขียนโปรแกรมภาษา Python, functional programming หรือการเขียนโปรแกรมแบบฟังก์ชันเนลถือเป็นแนวทางหนึ่งที่นักพัฒนาใช้ในการปรับปรุงคุณภาพของโค้ด เพิ่มความสามารถในการอ่านและการบำรุงรักษาของโปรแกรม ในบทความนี้ ผู้อ่านจะได้พบกับ 5 ฟังก์ชันในภาษา Python ที่สามารถใช้ในแนวทางการเขียนโปรแกรมแบบฟังก์ชันเนลได้ง่ายๆ และเราจะอธิบายให้คุณเห็นว่ามันทำงานอย่างไรในรูปแบบที่เข้าใจได้ไม่ยากเย็น
ฟังก์ชัน `map()` เป็นฟังก์ชันที่ช่วยให้คุณสามารถประมวลผลแต่ละส่วนของ iterable (เช่น รายการหรือทูเพิล) ด้วยฟังก์ชันที่กำหนดเองได้ โดยไม่ต้องใช้ loop ซ้ำๆ
def square(x):
return x * x
numbers = [1, 2, 3, 4, 5]
squared = list(map(square, numbers))
print(squared) # Output: [1, 4, 9, 16, 25]
ในตัวอย่างนี้ `map()` ได้ทำการเรียก `square()` กับแต่ละส่วนของรายการ `numbers` และส่งค่ากลับเป็นรายการของผลลัพธ์
ฟังก์ชัน `filter()` ใช้สำหรับกรองข้อมูลใน iterable โดยใช้ฟังก์ชันตัดสินใจที่เรากำหนด ทุกครั้งที่ผลลัพธ์ของฟังก์ชันตัดสินใจคือ `True` ข้อมูลนั้นจะถูกเก็บเข้าไปในผลลัพธ์สุดท้าย
def is_even(x):
return x % 2 == 0
numbers = [1, 2, 3, 4, 5]
evens = list(filter(is_even, numbers))
print(evens) # Output: [2, 4]
ในขณะที่ `reduce()` อาจไม่ได้รวมอยู่ใน built-in functions ตั้งแต่ Python 3, มันยังคงเป็นส่วนหนึ่งของโมดูล `functools` และมีความสำคัญอย่างยิ่ง ฟังก์ชันนี้ใช้สำหรับการประมวลผลการรวมข้อมูลใน iterable ด้วยฟังก์ชันที่กำหนด
from functools import reduce
def sum(x, y):
return x + y
numbers = [1, 2, 3, 4, 5]
result = reduce(sum, numbers)
print(result) # Output: 15
เราสามารถเห็นว่า `reduce()` รับ `sum` ฟังก์ชันและใช้ไปยังรายการ `numbers` จากซ้ายไปขวา คำนวณผลรวมสุดท้ายออกมา
เบื้องหลังความพลิกแพลงของ Python คือ lambda function หรือ anonymous function ฟังก์ชันนี้ไม่มีชื่อและสามารถกำหนดได้ในประโยคเดียว เหมาะสำหรับงานที่ต้องการฟังก์ชันเพียงเล็กน้อยและไม่ต้องการประกาศเต็มไปหมด
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x * x, numbers))
print(squared) # Output: [1, 4, 9, 16, 25]
Generators นั้นช่วยลดการใช้หน่วยความจำโดยการผลิตค่าต่อไปในอนุกรมเมื่อจำเป็น ใช้คีย์เวิร์ด `yield` จะช่วยให้สามารถสร้าง generator ได้
def count_up_to(max):
count = 1
while count <= max:
yield count
count += 1
counter = count_up_to(5)
print(next(counter)) # Output: 1
print(next(counter)) # Output: 2
# ... and so on
เมื่อใช้เทคนิคเหล่านี้ โปรแกรมเมอร์สามารถเขียนโค้ดที่ทำงานได้อย่างเหมาะสม โดยไม่เสียสมาธิกับรายละเอียดที่ไม่จำเป็น และคงความเรียบง่ายไว้ในเวลาเดียวกัน
การเรียนภาษา Python ในแบบที่มุ่งเน้นการใช้งานจริงนั้นสามารถเป็นประโยชน์มหาศาล ไม่ว่าจะเป็นการศึกษาเพื่อพัฒนางานส่วนตัว หรือเพื่อเตรียมความพร้อมสำหรับตลาดงานในอนาคต มิหนำซ้ำ การทำความเข้าใจและฝึกปฏิบัติเหล่านี้ยังช่วยส่งเสริมการเรียนรู้แนวทางการคิดคำนวณและการแก้ปัญหาอีกด้วย
จากนี้ หากคุณมองหาคำแนะนำเพิ่มเติมหรือหลักสูตรที่ครอบคลุมทั้งแนวคิดทางทฤษฎีและประสบการณ์การเขียนโค้ดที่จริงจัง EPT เป็นสถานที่ที่เหมาะสม เพื่อพัฒนาทักษะการเขียนโปรแกรมของคุณให้เติบโตไปอีกขั้น แต่อย่าลืม, การฝึกฝนเป็นกุญแจสำคัญที่จะทำให้คุณเข้าใจและใช้งานภาษา Python ได้อย่างแท้จริง!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากเจอข้อผิดพลาด หรือต้องการพูดคุย ติดต่อได้ที่ https://m.me/expert.Programming.Tutor/
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM