Posts

Showing posts with the label comprehension

List Comprehensions in Python and Ruby Way

Image
List Comprehensions เป็น Feature ที่น่าสนใจบน Python และมีอีกหลายภาษาที่นำ Feature นี้ไปใช้ ที่ผมพบคือ Coffee Script http://www.python.org/dev/peps/pep-0202/ List Comprehensions จะพูดง่ายๆ คือการที่เราทำอะไรสักอย่างกับ List ที่มีอยู่ แล้วคืนค่ากลับมาเป็น List เช่น ยกกำลัง 2 จำนวนเต็มทุกตัวที่เป็นเลขคู่ หรือพูดอีกแง่คือ เราสามารถสร้าง List จากคำสั่ง for, if ก็ย่อมได้ ซึ่งเราสามารถใช้วิธีการวน for (และใส่ if ข้างใน) ก็สามารถทำได้เช่นเดียวกัน แต่การใช้ List Comprehensions จะทำได้ในบรรทัดเดียว และมันเร็วกว่าด้วย (เรื่องของเร็วกว่า ลองไปศึกษาเพิ่มเติมดูนะครับ) มาดูในภาษา Python กันก่อน ส่วนในภาษา Ruby นั้น ไม่มี List Comprehensions ให้ใช้ แต่มี method ที่ช่วยให้เราทำในลักษณะเดียวกันได้ นั่นคือ select และ map จะเขียนได้ประมาณนี้ครับ แต่ map นั้นจะเป็นการทำอะไรสักอย่างกับ List เท่านั้น ไม่สามารถใช้ในการสร้าง List ขึ้นมาใหม่ได้เหมือน List Comprehensions ใน Python เมื่อดูจาก Syntax แล้ว ... ผมให้ Python ชนะเรื่องนี้นะ ... Code มัน Readable กว่าจริงๆ  ...