𝗟𝗶𝘀𝘁 𝗖𝗼𝗺𝗽𝗿𝗲𝗵𝗲𝗻𝘀𝗶𝗼𝗻𝘀 𝘃𝘀 𝗧𝗿𝗮𝗱𝗶𝘁𝗶𝗼𝗻𝗮𝗹 𝗟𝗼𝗼𝗽𝘀 𝗶𝗻 𝗣𝘆𝘁𝗵𝗼𝗻

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