ในบทความนี้ เราจะเรียนรู้เกี่ยวกับนิพจน์แลมบ์ดาและฟังก์ชัน filter() ใน Python 3.x หรือก่อนหน้านี้ ฟังก์ชันเหล่านี้มีอยู่ในไลบรารีมาตรฐาน Python ในตัว
นิพจน์แลมบ์ดาคืออะไร
ฟังก์ชันอินไลน์สามารถกำหนดได้โดยใช้นิพจน์แลมบ์ดา นิพจน์แลมบ์ดาประกอบด้วยคีย์เวิร์ดแลมบ์ดาตามด้วยรายการอาร์กิวเมนต์ที่คั่นด้วยเครื่องหมายจุลภาค และนิพจน์ที่จะถูกประเมินโดยใช้รายการอาร์กิวเมนต์ในรูปแบบต่อไปนี้:
ไวยากรณ์
Lambda arguments: expression
ค่าส่งคืน: ค่าที่คำนวณโดยการแทนที่อาร์กิวเมนต์ในนิพจน์
นิพจน์แลมบ์ดามักย่อด้วยชื่อของฟังก์ชันที่ไม่ระบุชื่อ เนื่องจากไม่มีชื่อใดๆ ที่นี่ไม่มีคีย์เวิร์ด def ที่จำเป็นสำหรับการประกาศฟังก์ชัน
ฟังก์ชันตัวกรองคืออะไร
Python จัดเตรียม function filter() ที่รับฟังก์ชันและวัตถุ iterable เป็นอาร์กิวเมนต์อินพุต และส่งกลับเฉพาะองค์ประกอบเหล่านั้นจากอ็อบเจกต์ iterable ซึ่งฟังก์ชันคืนค่าเป็น True
ไวยากรณ์
filter(function , <list type>)
ประเภทการคืนสินค้า :รายการค่าที่คำนวณได้
ให้เราดูภาพประกอบบางส่วนเพื่อดูภาพรวมที่ดีขึ้นเกี่ยวกับการใช้งาน
ภาพประกอบ 1
ตัวอย่าง
inp_list = ['t','u','t','o','r','i','a','l'] result = list(filter(lambda x: x!='t' , inp_list)) print(result)
ผลลัพธ์
['u', 'o', 'r', 'i', 'a', 'l']
คำอธิบาย
องค์ประกอบทั้งหมดในรายการนอกเหนือจาก 't' จะถูกกรองโดยเงื่อนไข และรายการถูกสร้างขึ้นโดยความช่วยเหลือของนิพจน์แลมบ์ดา
ภาพประกอบ 2
ตัวอย่าง
inp_list = [1,2,3,4,5,6,7,8,9,10] result = list(filter(lambda x: x%2==0 , inp_list)) print(result)
ผลลัพธ์
[2, 4, 6, 8, 10]
คำอธิบาย
ที่นี่เรากรององค์ประกอบคู่ทั้งหมดออกจากรายการที่กำหนดและแสดงในรูปแบบของรายการโดยพิมพ์ค่าที่ส่งคืน
บทสรุป
ในบทความนี้ เราได้เรียนรู้วิธีใช้ฟังก์ชัน lambda และ filter() ใน Python 3.x หรือก่อนหน้านี้ นอกจากนี้เรายังได้เรียนรู้เกี่ยวกับการใช้งานทั้งสองฟังก์ชันร่วมกันเพื่อให้ได้ผลลัพธ์ที่ต้องการ
ฟังก์ชันเหล่านี้มักใช้ร่วมกันเนื่องจากเป็นวิธีที่ดีกว่าในการกรองเอาต์พุตในรูปแบบที่ต้องการ