ในบทความนี้ เราจะเรียนรู้เกี่ยวกับ Lambda Expression และฟังก์ชัน filter() ใน Python 3.x (รวมถึงเวอร์ชันก่อนหน้า) ฟังก์ชันเหล่านี้อยู่ในไลบรารีมาตรฐานของ Python แล้ว
Lambda Expression คืออะไร?
ฟังก์ชันบรรทัดเดียว (inline function) สามารถกำหนดได้ด้วย Lambda Expression Lambda Expression ประกอบด้วยคีย์เวิร์ด lambda ตามด้วยรายการอาร์กิวเมนต์ที่คั่นด้วยคอมมา และนิพจน์ที่จะประเมินค่าโดยใช้อาร์กิวเมนต์เหล่านั้นในรูปแบบดังนี้:
ไวยากรณ์
lambda arguments: expression
ค่าที่คืน: ค่าที่คำนวณได้จากการแทนอาร์กิวเมนต์ในนิพจน์
Lambda Expression มักเรียกย่อว่า anonymous functions เนื่องจากไม่ได้ตั้งชื่อ ไม่ต้องใช้คีย์เวิร์ด def ในการประกาศฟังก์ชัน
ฟังก์ชัน Filter คืออะไร?
Python มีฟังก์ชัน filter() ที่รับฟังก์ชันและออบเจ็กต์ iterable เป็นอาร์กิวเมนต์อินพุต และคืนค่าเฉพาะองค์ประกอบจาก iterable ที่ฟังก์ชันคืนค่า True
ไวยากรณ์
filter(function,)
ประเภทค่าที่คืน: List ของค่าที่คำนวณได้
มาดูภาพประกอบเพื่อเข้าใจการใช้งานให้ดีขึ้น
ตัวอย่างที่ 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']
คำอธิบาย
ที่นี่ องค์ประกอบทั้งหมดใน List ยกเว้น 't' ถูกกรองโดยเงื่อนไข และ List ถูกสร้างขึ้นด้วยความช่วยเหลือของ Lambda Expression
ตัวอย่างที่ 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]
คำอธิบาย
ที่นี่เรากรององค์ประกอบคู่ทั้งหมดจาก List ที่กำหนดและแสดงในรูปแบบ List โดยการแปลงค่าที่คืนมา
สรุป
ในบทความนี้ เราได้เรียนรู้วิธีการใช้ Lambda และฟังก์ชัน filter() ใน Python 3.x (รวมถึงเวอร์ชันก่อนหน้า) เรายังได้เรียนรู้การใช้งานร่วมกันของทั้งสองฟังก์ชันเพื่อให้ได้ผลลัพธ์ที่ต้องการ
ฟังก์ชันเหล่านี้มักใช้ร่วมกันเพราะให้วิธีที่ดีกว่าในการกรองผลลัพธ์ในรูปแบบที่ต้องการ