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)
แปลงรายการเป็นทูเพิล |