filter() และ lambda functions
ในแบบฝึกหัดที่แล้ว คุณได้ใช้ lambda functions เพื่อฝังการดำเนินการไว้ภายใน map() โดยไม่ต้องตั้งชื่อฟังก์ชัน แบบฝึกหัดนี้จะฝึกแนวคิดเดียวกัน แต่เปลี่ยนมาใช้ lambda function ร่วมกับ filter() แทน ฟังก์ชัน filter() ใช้สำหรับกรององค์ประกอบที่ไม่ตรงตามเงื่อนไขที่กำหนดออกจากลิสต์
เป้าหมายของแบบฝึกหัดนี้คือการใช้ filter() เพื่อสร้างลิสต์ใหม่จากลิสต์สตริงที่ให้มา โดยลิสต์ใหม่จะมีเฉพาะสตริงที่มีความยาวมากกว่า 6 ตัวอักษรเท่านั้น
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Python เบื้องต้น: การเขียนฟังก์ชัน
คำแนะนำการฝึกหัด
- ในการเรียกใช้
filter()ให้ส่ง lambda function และลิสต์สตริงfellowshipเข้าไป โดย lambda function ควรตรวจสอบว่าจำนวนตัวอักษรของสตริงmemberมากกว่า 6 หรือไม่ โดยใช้ฟังก์ชันlen()จากนั้นกำหนด filter object ที่ได้ให้กับตัวแปรresult - แปลง
resultให้เป็นลิสต์ แล้วพิมพ์ผลลัพธ์ออกมา
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create a list of strings: fellowship
fellowship = ['frodo', 'samwise', 'merry', 'pippin', 'aragorn', 'boromir', 'legolas', 'gimli', 'gandalf']
# Use filter() to apply a lambda function over fellowship: result
____ = filter(____, ____)
# Convert result to a list: result_list
____
# Print result_list
print(result_list)