Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Lambda และ Filter ใน Python - ตัวอย่างการใช้งาน


ในบทความนี้ เราจะเรียนรู้เกี่ยวกับ 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 (รวมถึงเวอร์ชันก่อนหน้า) เรายังได้เรียนรู้การใช้งานร่วมกันของทั้งสองฟังก์ชันเพื่อให้ได้ผลลัพธ์ที่ต้องการ

ฟังก์ชันเหล่านี้มักใช้ร่วมกันเพราะให้วิธีที่ดีกว่าในการกรองผลลัพธ์ในรูปแบบที่ต้องการ