ฟังก์ชัน filter
ฟังก์ชัน filter ทำการกรององค์ประกอบ
ของวัตถุที่วนซ้ำได้ โดยเหลือไว้เพียง
องค์ประกอบที่ตรงตามเงื่อนไขที่กำหนด ใน
พารามิเตอร์แรกจะระบุฟังก์ชัน callback
ซึ่งจะใช้เป็นเงื่อนไขในการกรองวัตถุ ใน
พารามิเตอร์ที่สองคือวัตถุที่ต้องการกรองเอง
ในวัตถุจะเหลือเพียงองค์ประกอบที่
ทำให้ callback คืนค่า True
ผลลัพธ์ที่ได้จากฟังก์ชันคือ
วัตถุที่วนซ้ำได้ชนิดพิเศษ สามารถ
แปลงมันเป็นลิสต์ได้โดยใช้
ฟังก์ชัน list
ไวยากรณ์
filter(ฟังก์ชัน, วัตถุสำหรับการกรอง)
ตัวอย่าง
มาใช้การกรองลิสต์ต้นทางเพื่อให้ได้ลิสต์ที่ประกอบด้วย เพียงองค์ประกอบคู่กัน:
lst = [2, 3, 6, 8, 15]
res = filter(lambda x: x % 2 == 0, lst)
print(list(res))
ผลลัพธ์จากการรันโค้ด:
[2, 6, 8]
ตัวอย่าง
คราวนี้มากรองเฉพาะองค์ประกอบคี่กัน:
lst = [2, 3, 6, 8, 15]
res = filter(lambda x: x % 2 != 0, lst)
print(list(res))
ผลลัพธ์จากการรันโค้ด:
[3, 15]