หัดเขียน Python การใช้งาน Lambda และ Filter
ในภาษา python นั้นต้องบอกว่ามี function build in ที่ทำให้สะดวกสบายและประหยัดเวลาในการพัฒนา function เล็กๆน้อยไปเยอะพอสมควรซึ่ง วันนี้จะเสนอลูกเล่น 2 อย่างคือ Lambda และ Filter
เริ่มต้นด้วย lambda ใน python การใช้ lambda เพื่อทำการสร้างฟังก์ชั่น anonymous ทำให้เราสามารถสร้างฟังก์ชั่นง่ายๆเก็บในตัวแปรได้เลย ไม่จำเป็นต้องนั่ง def function ขึ้นมา แต่ก็ต้องระวังเรื่องความสับสนของโค้ดที่เขียนด้วยนะครับ เอาเป็นว่าเรามาดูตัวอย่างกันเลยดีกว่า โดยมีโค้ดดังนี้
a = lambda x, y : x+y b = lambda x : x*x print("lambda x, y: x+y ", a(2,5)) print("lambda x: x * x" , b(5))
เมื่อลองรันโค้ดดู
จะได้ผลลัพธ์ดังดู จะเห็นว่าการใช้งาน lambda นั้นเราสามารถประกาศได้โดย param ที่จะส่งเข้าไป anonymous function จะมีกี่ตัวก็ได้ แต่จะเริ่มตัวแรกหลังคำว่า lambda และตัวสุดท้ายคือก็จะเริ่มเครื่องหมาย : หลังจากเครื่องหมาย : จะเป็นการทำงานและค่าที่ return ออกมาโดย anonymous function จะต้อง return ค่าได้เพียงค่าเดียวเท่านั้น
จากรูปกรอบสีแดงคือ param ส่วนกรอบสีเขียวคือค่าที่ return ออกมา ส่วนการเอาไปใช้งานก็ต้องมีตัวแปรมารองรับและ call ผ่านตัวแปรที่เก็บค่า lambda เลย
การใช้งาน lambda ก็จะมีประมาณนี้ครับ
ต่อมาก็จะเป็นการใช้ Filter ซึ่งจะเป็น function ในการช่วยกรองข้อมูลเรียกว่าสะดวกมากเลย มาดูตัวอย่างโค้ดกันเลยครับ
data_test = [2,4,5,6,7,0,8,9,10] print(list(filter(lambda x:x>4, data_test))) result = list(filter(lambda x:x>3, data_test)) print(result)
การทำงานของ Filter จะได้ข้อมูลออกมาเป็น Filter Object ซึ่งเราต้องทำการแปลงเป็น list เหมือนในโค้ดตัวอย่าง ซึ่งในการใส่เงื่อนไขต้องใส่เป็น lambda เช่นในตัวอย่างต้องการข้อมูลใน data_test ที่ > 4 เราก็ใส่คำสั่ง filter(lambda x: x > 4, data_test) เพราะฉะนั้นการจะใช้ Filter ได้ต้องทำเข้าใจ lambda ซะก่อน เมื่อเราทำการแปลงผลลัพธ์ออกมาเป็น list แล้วจะเห็นว่า แทนที่เราจะวนลูปเพื่อแล้วเช็คเงื่อนไข เพื่อให้ได้ข้อมูลที่ต้องการ เราสามารถลดการเขียนโค้ดส่วนนั้นไปได้เลย แค่ใช้ Lambda กับ Filter แค่นั้นเอง ผมก็ขอจบบทความนี้ไว้เพียงเท่านี้นะครับ