Python - ทูเปิล

ทูเปิลคือชุดของวัตถุที่เรียงลำดับและไม่เปลี่ยนรูป Tuples เป็นลำดับเช่นเดียวกับรายการ ความแตกต่างระหว่างทูเปิลและลิสต์คือทูเปิลไม่สามารถเปลี่ยนแปลงได้ต่างจากลิสต์และทูเพิลใช้วงเล็บในขณะที่ลิสต์ใช้วงเล็บเหลี่ยม

การสร้างทูเปิลทำได้ง่ายเพียงแค่ใส่ค่าต่างๆที่คั่นด้วยจุลภาค คุณสามารถเลือกที่จะใส่ค่าที่คั่นด้วยเครื่องหมายจุลภาคระหว่างวงเล็บได้ด้วย ตัวอย่างเช่น -

tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";

ทูเพิลว่างถูกเขียนเป็นสองวงเล็บที่ไม่มีอะไรเลย -

tup1 = ();

ในการเขียนทูเปิลที่มีค่าเดียวคุณต้องใส่ลูกน้ำแม้ว่าจะมีเพียงค่าเดียว -

tup1 = (50,);

เช่นเดียวกับดัชนีสตริงดัชนีทูเพิลเริ่มต้นที่ 0 และสามารถแบ่งส่วนเชื่อมต่อและอื่น ๆ ได้

การเข้าถึงค่าใน Tuples

ในการเข้าถึงค่าในทูเปิลให้ใช้วงเล็บเหลี่ยมสำหรับการแบ่งส่วนพร้อมกับดัชนีหรือดัชนีเพื่อรับค่าที่มีอยู่ในดัชนีนั้น ตัวอย่างเช่น -

#!/usr/bin/python

tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5, 6, 7 );
print "tup1[0]: ", tup1[0];
print "tup2[1:5]: ", tup2[1:5];

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

tup1[0]:  physics
tup2[1:5]:  [2, 3, 4, 5]

กำลังอัปเดต Tuples

สิ่งทอไม่เปลี่ยนรูปซึ่งหมายความว่าคุณไม่สามารถอัปเดตหรือเปลี่ยนแปลงค่าขององค์ประกอบทูเปิลได้ คุณสามารถใช้ส่วนของสิ่งที่มีอยู่เพื่อสร้างสิ่งที่เพิ่มขึ้นใหม่ดังตัวอย่างต่อไปนี้แสดงให้เห็น -

#!/usr/bin/python

tup1 = (12, 34.56);
tup2 = ('abc', 'xyz');

# Following action is not valid for tuples
# tup1[0] = 100;

# So let's create a new tuple as follows
tup3 = tup1 + tup2;
print tup3;

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

(12, 34.56, 'abc', 'xyz')

ลบ Tuple Elements

ไม่สามารถลบองค์ประกอบทูเพิลแต่ละรายการได้ แน่นอนว่าไม่มีอะไรผิดปกติในการรวบรวมทูเปิลอื่นเข้าด้วยกันโดยทิ้งองค์ประกอบที่ไม่ต้องการ

หากต้องการลบทูเพิลทั้งหมดอย่างชัดเจนให้ใช้ไฟล์ delคำให้การ. ตัวอย่างเช่น -

#!/usr/bin/python

tup = ('physics', 'chemistry', 1997, 2000);
print tup;
del tup;
print "After deleting tup : ";
print tup;

สิ่งนี้ก่อให้เกิดผลลัพธ์ต่อไปนี้ โปรดสังเกตว่ามีข้อยกเว้นเพิ่มขึ้นเนื่องจากหลังจากนั้นdel tup ทูเปิลไม่มีอีกแล้ว -

('physics', 'chemistry', 1997, 2000)
After deleting tup :
Traceback (most recent call last):
   File "test.py", line 9, in <module>
      print tup;
NameError: name 'tup' is not defined

การดำเนินการ Tuples พื้นฐาน

ทูเปิลตอบสนองต่อตัวดำเนินการ + และ * เหมือนกับสตริง พวกเขาหมายถึงการต่อกันและการทำซ้ำที่นี่เช่นกันยกเว้นว่าผลลัพธ์จะเป็นทูเพิลใหม่ไม่ใช่สตริง

ในความเป็นจริง tuples ตอบสนองต่อการดำเนินการตามลำดับทั่วไปทั้งหมดที่เราใช้กับสตริงในบทก่อนหน้า -

นิพจน์ Python ผล คำอธิบาย
เลน ((1, 2, 3)) 3 ความยาว
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) การเชื่อมต่อ
('สวัสดี!',) * 4 ('Hi!', 'Hi!', 'Hi!', 'Hi!') การทำซ้ำ
3 ใน (1, 2, 3) จริง การเป็นสมาชิก
สำหรับ x in (1, 2, 3): พิมพ์ x, 1 2 3 การทำซ้ำ

การจัดทำดัชนีการแบ่งส่วนและเมทริกซ์

เนื่องจากทูเปิลเป็นลำดับการสร้างดัชนีและการแบ่งส่วนจึงทำงานในลักษณะเดียวกับทูเปิลเช่นเดียวกับที่ทำกับสตริง สมมติว่าอินพุตต่อไปนี้ -

L = ('spam', 'Spam', 'SPAM!')

 

นิพจน์ Python ผล คำอธิบาย
L [2] "สแปม!" ออฟเซ็ตเริ่มต้นที่ศูนย์
L [-2] 'สแปม' เชิงลบ: นับจากทางขวา
L [1:] ['สแปม', 'สแปม!'] การแบ่งส่วนดึงข้อมูลส่วนต่างๆ

ไม่มีตัวคั่นที่แนบมา

ชุดของออบเจ็กต์หลายชุดคั่นด้วยเครื่องหมายจุลภาคเขียนโดยไม่ระบุสัญลักษณ์เช่นวงเล็บสำหรับรายการวงเล็บสำหรับสิ่งที่เพิ่มขึ้น ฯลฯ ค่าเริ่มต้นเป็นสิ่งที่เพิ่มขึ้นตามที่ระบุในตัวอย่างสั้น ๆ เหล่านี้ -

#!/usr/bin/python

print 'abc', -4.24e93, 18+6.6j, 'xyz';
x, y = 1, 2;
print "Value of x , y : ", x,y;

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

abc -4.24e+93 (18+6.6j) xyz
Value of x , y : 1 2

ฟังก์ชัน Tuple ในตัว

Python มีฟังก์ชัน tuple ดังต่อไปนี้ -

ซีเนียร์ ฟังก์ชั่นพร้อมคำอธิบาย
1 cmp (tuple1, tuple2)

เปรียบเทียบองค์ประกอบของสิ่งทอทั้งสอง

2 len (ทูเพิล)

ให้ความยาวทั้งหมดของทูเปิล

3 สูงสุด (ทูเพิล)

ส่งคืนสินค้าจากทูเปิลที่มีค่าสูงสุด

4 นาที (ทูเพิล)

ส่งคืนสินค้าจากทูเปิลที่มีค่าต่ำสุด

5 ทูเพิล (seq)

แปลงรายการเป็นทูเพิล