𝗟𝗶𝘀𝘁 𝗖𝗼𝗺𝗽𝗿𝗲𝗵𝗲𝗻𝘀𝗶𝗼𝗻𝘀 𝘃𝘀 𝗧𝗿𝗮𝗱𝗶𝘁𝗶𝗼𝗻𝗮𝗹 𝗟𝗼𝗼𝗽𝘀 𝗶𝗻 𝗣𝘆𝘁𝗵𝗼𝗻
Python ช่วยให้คุณทำอะไรได้มากขึ้นด้วยโค้ดที่น้อยลง
วิธีหนึ่งในการทำเช่นนี้คือการใช้ list comprehensions
นักพัฒนาหลายคนสงสัยว่า: โค้ดที่สั้นกว่าดีกว่าเสมอไปหรือไม่? คุณควรเปลี่ยน loop ทุกตัวให้เป็น comprehension หรือไม่?
นี่คือวิธีที่คุณจะเลือกใช้
𝗧𝗿𝗮𝗱𝗶𝘁𝗶𝗼𝗻𝗮𝗹 𝗟𝗼𝗼𝗽𝘀
Traditional loops ทำงานทีละขั้นตอน
- สร้าง list ว่าง
- วนลูปผ่านข้อมูล
- คำนวณค่า
- เพิ่มผลลัพธ์ลงใน list
ใช้ loops เมื่อ:
- ตรรกะของคุณมีความซับซ้อน
- คุณต้อง debug หลายขั้นตอน
- คุณต้องทำ side effects เช่น การพิมพ์ (print) หรือการทำ logging
- คุณมีเงื่อนไขที่ซ้อนกันหลายชั้น
Loops ช่วยให้เจตนาของคุณชัดเจน และช่วยให้นักพัฒนาคนอื่นอ่านโค้ดของคุณได้โดยไม่สับสน
𝗟𝗶𝘀𝘁 𝗖𝗼𝗺𝗽𝗿𝗲𝗵𝗲𝗻𝘀𝗶𝗼𝗻𝘀
List comprehension สามารถทำงานแบบเดียวกันได้ในบรรทัดเดียว
- มันรวมการวนลูป (iteration) และการแปลงข้อมูล (transformation) เข้าด้วยกัน
- มันสร้าง collection ใหม่ขึ้นมาทันที
- โดยปกติแล้วจะเร็วกว่า loop
ใช้ comprehensions เมื่อ:
- งานนั้นเป็นการแปลงข้อมูลแบบง่ายๆ
- คุณกำลังกรอง list โดยใช้เงื่อนไขเดียว
- คุณต้องการเขียนโค้ดที่สะอาดและกระชับสำหรับงานที่ไม่ซับซ้อน
Comprehensions มีประสิทธิภาพสำหรับการทำ data cleaning และการคำนวณทางคณิตศาสตร์พื้นฐาน
𝗧𝗵𝗲 𝗗𝗶𝗳𝗳𝗲𝗿𝗲𝗻𝗰𝗲𝘀
• ความยาวของโค้ด: Comprehensions สั้นกว่า ส่วน Loops ยาวกว่า • ประสิทธิภาพ: Comprehensions มักจะเร็วกว่าเนื่องจากการปรับแต่งภายใน (internal optimization) • ความอ่านง่าย: Comprehensions ชนะในงานที่ง่าย ส่วน Loops ชนะในตรรกะที่ซับซ้อน • ความยืดหยุ่น: Loops ให้ความยืดหยุ่นที่สูงกว่ามากสำหรับกระบวนการที่มีหลายขั้นตอน
𝗔 𝗕𝗮𝗹𝗮𝗻𝗰𝗲𝗱 𝗔𝗽𝗽𝗿𝗼𝗮𝗰𝗵
อย่าฝืนใช้ comprehension หากมันทำให้โค้ดอ่านยาก
หากคุณพบว่าตัวเองกำลังเขียน comprehension ที่มีเงื่อนไขตั้งแต่สามอย่างขึ้นไป ให้หยุด แล้วเปลี่ยนไปใช้ traditional loop แทน
เขียนโค้ดเพื่อให้มนุษย์อ่านเป็นอันดับแรก และเขียนโค้ดเพื่อประสิทธิภาพเป็นอันดับสอง
Source: https://dev.to/shalinivemuri/list-comprehensions-vs-traditional-loops-in-python-4f6n
Optional learning community: https://t.me/GyaanSetuAi