Skip to content

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

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

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

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

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

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

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

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

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

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

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

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

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *