ในภาษา 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 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)