29 มีนาคม 2558

Published มีนาคม 29, 2558 by with 0 comment

พื้นฐานการแยก Iterable ในภาษา Python

บทความนี้จะพาผู้อ่านไปรู้จักกับพื้นฐานการแยก Iterable ในภาษา Python กันครับ ก่อนที่ผู้อ่านจะอ่านบทความนี้ต้องมีความรู้เรื่องชนิดข้อมูลของภาษา Python มาก่อนครับ

ในภาษา Python คุณสามารถแยก Iterable จาก list/tuple/iterabl เป็นชุดข้อมูลของตัวแปรได้ง่าย ๆ ดังนี้

[python]
>>> a,b,c = [1,2,3]
>>> print(a)
1
>>> print(c)
3[/python]

หรือจะเขียนอีกแบบหนึ่ง ดังนี้ครับ

[python]
>>> list = [1,2,3]
>>> a, b, c = list[0], list[1], list[2]
[/python]

ใน Python 2 ถ้าคุณต้องการแยกเฉพาะบางองค์ประกอบของ list สามารถทำได้ดังนี้

[python]>>> items = [1,2,3,4,5]
>>> start = items[0]
>>> end = items[-1]
>>> rest = items[1:-1]
>>> print start
1
>>> print rest
[2, 3, 4][/python]

แต่ใน Python3 มีวิธีการที่ง่ายกว่านี้ คือ สามารถใช้ไวยากรณ์ตัวแปร starred ที่คุ้นเคยจากข้อกำหนดให้อาร์กิวเมนต์ของฟังก์ชันว่า "put all the unmatched elements into this variable" (ใส่ทุกองค์ประกอบที่ไม่ตรงกันเข้าไปยังตัวแปรนี้) :

[python]
>>> items = [1,2,3,4,5]
>>> start, *rest, end = items
>>> print(start)
1
>>> print(rest)
[2, 3, 4]
[/python]

เพราะหลักไวยากรณ์ที่เพิ่มเข้ามาใหม่นี้ ทำให้คุณสามารถแยกเฉพาะบางองค์ประกอบของชนิดข้อมูลต่าง ๆ ใน Python 3 ได้อย่างง่ายดายกว่าการเขียนโค้ดเพื่อทำงานนี้ใน Python 2 ครับ อ่านรายละอียดของ Python 3 ได้ที่ PEP 3132

ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)