ผลต่างระหว่างรุ่นของ "Python Programming/Tuples"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 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