ผลต่างระหว่างรุ่นของ "Python Programming/Tuples"
Cardcaptor (คุย | มีส่วนร่วม) |
Cardcaptor (คุย | มีส่วนร่วม) |
||
แถว 42: | แถว 42: | ||
แต่ไม่ได้หมายความว่าเราจะเปลี่ยนค่าของตัวแปรให้เป็น tuple อื่นไม่ได้ | แต่ไม่ได้หมายความว่าเราจะเปลี่ยนค่าของตัวแปรให้เป็น tuple อื่นไม่ได้ | ||
<pre title="interpreter"> | <pre title="interpreter"> | ||
− | >>> t = 999, "Misaka Mikoto", "tsunderailgun", 4649.398 | + | >>> t = 999, "Misaka Mikoto", "tsunderailgun", 4649.398, 881, 889 |
>>> print t | >>> print t | ||
− | (999, 'Misaka Mikoto', 'tsunderailgun', 4649.3980000000001) | + | (999, 'Misaka Mikoto', 'tsunderailgun', 4649.3980000000001, 881, 889) |
</pre> | </pre> | ||
== Slicing == | == Slicing == | ||
− | + | ึSlicing คือการสร้าง tuple อีกอันหนึ่งขึ้นมาจาก tuple เดิมด้วยการดึงสมาชิกบางส่วนที่อยู่ติดกันออกมา โดยนิพจน์ที่เราใช้ในการทำ slicing จะมีรูปแบบดังนี้ | |
+ | <<tuple>>[หมายเลขของสมาชิกตัวแรกที่ต้องการ : หมายเลขของสมาชิกที่อยู่'''หลัง'''สมาชิกตัวที่เราต้องการ] | ||
+ | ยกตัวอย่าง เช่น ถ้าเราต้องการสมาชิกที่มีหมายเลข 2 ถึงสมาชิกที่มีหมายเลข 3 ของ tuple t เราจะใช้นิพจน์ | ||
+ | <pre title="interpreter"> | ||
+ | >>> t[2:4] | ||
+ | ('tsunderailgun', 4649.3980000000001) | ||
+ | </pre> | ||
+ | และถ้าต้องการสมาชิกตั้งแต่ตัวที่มีหมายเลข 3 ไปจนถึงตัวที่มีหมายเลข 5 เราจะใช้นิพจน์ | ||
+ | <pre title="interpreter"> | ||
+ | >>> t[3:6] | ||
+ | (4649.3980000000001, 881, 889) | ||
+ | </pre> | ||
+ | หมายเลขที่เราใส่ลงในนิพจน์สำหรับทำ slicing สามารถเ้ป็นเลขลบได้ ซึ่งถ้าเป็นเลขลบก็จะมีความหมายเหมือนกับที่กล่าวไว้แล้วข้างบน | ||
+ | <pre title="interpreter"> | ||
+ | >>> t[1:-1] | ||
+ | ('Misaka Mikoto', 'tsunderailgun', 4649.3980000000001, 881) | ||
+ | >>> t[-6:-2] | ||
+ | (999, 'MIsaka Mikoto', 'tsunderailgun', 4649.3980000000001) | ||
+ | </pre> | ||
{{Python Programming/Navigation|If Statements|Lists}} | {{Python Programming/Navigation|If Statements|Lists}} |
รุ่นแก้ไขเมื่อ 08:15, 17 ตุลาคม 2551
Tuple เป็นโครงสร้างข้อมูลที่ทำหน้าที่คล้ายกับอะเรย์ขนาดคงที่
เราสามารถสร้าง tuple ได้โดยการนำค่าหลายๆ ค่ามาเรียงต่อกัน แล้วคั่นค่าที่ติดกันด้วยเครื่องหมายคอมมา (,)
>>> t = 42, "Misaka Mikoto", "tsunderailgun", 4649.398 >>> print t (42, 'Misaka Mikoto', 'tsunderailgun', 4649.3980000000001)
เราสามารถเรียกสมาชิกแต่ละตัวของ tuple มาใช้ได้เหมือนกับการเรียกดูสมาชิกของอะเรย์ในภาษา C
>>> t[0] 42 >>> t[1] 'Misaka Mikoto' >>> t[2] 'tsunderailgun' >>> t[3] 4649.3980000000001
นอกจากนี้ในภาษาไพทอน เลขที่เราใช้เป็นดรรชนีบ่งตำแหน่งของสมาชิกใน tuple จะเป็นเลขลบก็ได้ โดยที่ t[-k] จะหมายถึงสมาชิกที่เริ่มนับจากด้านหลังของ t ไปเป็นตัวที่ k
>>> t[-1] 4649.3980000000001 >>> t[-2] 'tsunderailgun' >>> t[-3] 'Misaka Mikoto' >>> t[-4] 42
tuple มีสมบัติที่สำคัญประการหนึ่งคือเราไม่สามารถเปลี่ยนแปลงสมาชิกของมันหลังจากสร้างมันเสร็จแล้วได้ (ภาษาฝรั่งเรียกโครงสร้างข้อมูลประเภทนี้ว่า immutable data structure)
>>> t[0] = 999 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment
แต่ไม่ได้หมายความว่าเราจะเปลี่ยนค่าของตัวแปรให้เป็น tuple อื่นไม่ได้
>>> t = 999, "Misaka Mikoto", "tsunderailgun", 4649.398, 881, 889 >>> print t (999, 'Misaka Mikoto', 'tsunderailgun', 4649.3980000000001, 881, 889)
Slicing
ึSlicing คือการสร้าง tuple อีกอันหนึ่งขึ้นมาจาก tuple เดิมด้วยการดึงสมาชิกบางส่วนที่อยู่ติดกันออกมา โดยนิพจน์ที่เราใช้ในการทำ slicing จะมีรูปแบบดังนี้
<<tuple>>[หมายเลขของสมาชิกตัวแรกที่ต้องการ : หมายเลขของสมาชิกที่อยู่หลังสมาชิกตัวที่เราต้องการ]
ยกตัวอย่าง เช่น ถ้าเราต้องการสมาชิกที่มีหมายเลข 2 ถึงสมาชิกที่มีหมายเลข 3 ของ tuple t เราจะใช้นิพจน์
>>> t[2:4] ('tsunderailgun', 4649.3980000000001)
และถ้าต้องการสมาชิกตั้งแต่ตัวที่มีหมายเลข 3 ไปจนถึงตัวที่มีหมายเลข 5 เราจะใช้นิพจน์
>>> t[3:6] (4649.3980000000001, 881, 889)
หมายเลขที่เราใส่ลงในนิพจน์สำหรับทำ slicing สามารถเ้ป็นเลขลบได้ ซึ่งถ้าเป็นเลขลบก็จะมีความหมายเหมือนกับที่กล่าวไว้แล้วข้างบน
>>> t[1:-1] ('Misaka Mikoto', 'tsunderailgun', 4649.3980000000001, 881) >>> t[-6:-2] (999, 'MIsaka Mikoto', 'tsunderailgun', 4649.3980000000001)
หน้าก่อน: If Statements | สารบัญ | หน้าต่อไป: Lists |