ทำไมเราถึงมีทูเพิล?
ฉันเริ่มทำงานกับ Python เมื่อ 3 ปีก่อน ขณะที่ศึกษาเนื้อหาหลักสูตรต่างๆ อย่างครอบคลุม รวมถึงประเภทข้อมูล ประเภทชั้นเรียน และอื่นๆ ฉันพบว่าตัวเองกำลังหยุดเพื่อไตร่ตรองถึงวัตถุประสงค์และความสำคัญของทูเพิล กระตุ้นให้ฉันคิดอย่างลึกซึ้งว่าทำไม มันเป็นสิ่งที่?
พูดตามตรง ฉันแทบจะไม่ใช้ทูเพิลในโครงการของฉันเลย และไม่เคยเข้าใจความจริงที่ว่ามันอาจมีกรณีการใช้งานที่ดีกว่ารายการ (ซึ่งเกือบจะเหมือนกันทุกประการ) ฉันไม่ได้คิดด้วยซ้ำและค้นหาสิ่งที่ถูกต้อง ใช้กรณีสำหรับมัน
จนถึงตอนนี้!!
ฉันพบวิดีโอจากหนึ่งในช่อง Youtube ที่ฉันชื่นชอบNetworkChuck (อย่าลืมติดตาม เขาน่าทึ่งมาก ❤️) บน Tuples เขามีคำถามเดียวกับฉันหรือบางทีจิตใต้สำนึกของฉันก็ถาม สิ่งที่จำเป็นสำหรับสิ่งอันดับเมื่อเรามีรายการอยู่แล้ว?
แน่นอน เรารู้ว่า [ list ] อยู่ในวงเล็บเหลี่ยมและ ( tuples ) อยู่ในวงเล็บเหลี่ยม แต่มีอะไรอีกล่ะ ฉันหมายถึงดูรูป เราสามารถมีสตริงและจำนวนเต็มแบบเดียวกับในรายการ
สิ่งอันดับแตกต่างจากรายการอย่างไร
ทำไมเราต้องทูเพิล?
ทำไมมันถึงมีอยู่?
มาตอบคำถามให้ครบทุกข้อแล้วไปนอนกันเถอะ!
เปลี่ยนแปลงไม่ได้
ดังที่ Chuck กล่าวว่า Immutable เป็นเพียงคำแฟนซีที่แปลว่าไม่สามารถเปลี่ยนแปลงได้
ไม่เปลี่ยนรูป == ไม่สามารถเปลี่ยนแปลงได้
ไม่แน่นอน == เปลี่ยนแปลงได้
( TUPLES ) เป็นความหมายที่ไม่เปลี่ยนรูป คุณไม่สามารถเปลี่ยนแปลงข้อมูลในวงเล็บเหลี่ยมเหล่านั้นได้ ในทางกลับกัน [ LISTS ] นั้นไม่แน่นอนและข้อมูลสามารถเปลี่ยนแปลงได้ในวงเล็บเหลี่ยมเหล่านั้น
มาลองเปลี่ยนค่าในรายการเนื่องจากเป็น MUTABLE
lists = ["Shivam", "Vasudeva",10]
lists = ["Shivam", "Vasudeva",10]
print("Before changing-- ",lists)
lists[2] = 14
print("After changing-- ", lists)
Before changing-- ['Shivam', 'Vasudeva', 10]
After changing-- ['Shivam', 'Vasudeva', 14]
tups = ("Shivam", "Vasudeva",10)
print("Before changing-- ",tups)
tups[2] = 14
print("After changing-- ",tups)
ตอนนี้คำถามคือมันช่วยได้อย่างไร? มันทำให้โค้ดของเราดีขึ้นได้อย่างไร?
มีคุณสมบัติน้อยกว่า LIST หนึ่งรายการทำให้ TUPLES ดีขึ้นหรือไม่ มันสมเหตุสมผลอย่างไร?
ความเร็ว ️
ข้อเท็จจริงที่ว่าสิ่งอันดับไม่เปลี่ยนรูปทำให้เร็วกว่ารายการ
ในวิดีโอของเขา Chuck ทำการทดสอบเล็กน้อยเพื่อดูว่าทูเพิลเร็วแค่ไหน เขารันโค้ดเล็กๆ บนทูเพิลและลิสต์เพื่อจับเวลาที่ข้อมูลทั้งสองประเภทใช้เพื่อให้ได้ผลลัพธ์
import timeit
#SPEED TEST
#Lists
print("List = ",timeit.timeit(stmt= '["Toronto", "Calgary","Montreal", "Vancouver", 647, 416, 437]', number=100000000))
#tuples
print("Tuples = ",timeit.timeit(stmt= '("Toronto", "Calgary","Montreal", "Vancouver", 647, 416, 437)', number=100000000))
รายการใช้เวลามากกว่า TUPLES 10 เท่า มันไม่บ้าเหรอ?
ความเร็วประเภทนี้ไม่สำคัญในระดับเล็กๆ แต่สำหรับการคำนวณระดับสูงที่ความเร็วเป็นปัจจัยสำคัญ ทูเพิลสามารถสร้างความแตกต่างได้มาก
มีคำอธิบายง่ายๆ สำหรับความแตกต่างของความเร็วนี้
รายการไม่แน่นอนเราสามารถเปลี่ยนได้ และด้วยเหตุผลเดียวกับที่รายการเหล่านี้ถูกจัดเก็บไว้ในหน่วยความจำ 2 บล็อก ในขณะที่ TUPLESจะถูกจัดเก็บไว้ในหน่วยความจำเพียง 1 บล็อกเนื่องจาก IMMUTABILITY
ฟังดูสวยหรู แต่คุณอาจยังไม่มั่นใจว่าทำไมเราถึงต้องใช้ทูเพิล‼️
ประเภทของข้อมูล
ตาม Stack Overflow แม้ว่า [ รายการ ] สามารถมีประเภทข้อมูลที่แตกต่างกันในรายการเดียว แต่ก็ไม่ถือว่าเป็นแนวปฏิบัติที่ดี
การใช้Lists ที่ถูกต้อง คือการมีข้อมูลประเภทHOMOGENOUS ซึ่งหมายความว่าหนึ่งรายการต้องมีประเภทข้อมูลเดียวกัน
#List Homogenous data
["Toronto", "Calgary", "Montreal", "Vancouver"]
#String is the only datatype
#Heterogeneous Data
[("Toronto", 647, "Dundas"), ("Calgary", 587, "Ravenstern")]
#String and integers
คุณไม่จำเป็นต้องใช้ ( ) เพื่อสร้างทูเพิล ฟังดูโง่ใช่ไหม ดูโค้ดด้านล่าง ฉันไม่ได้ใส่วงเล็บเหลี่ยมและพิมพ์ประเภทของคลาสที่เป็นของมัน
canada = "Toronto", "Calgary","Montreal"
print(type(canada))
Result of executing of code above
canada = "Toronto",
print(type(canada))
แจ้งให้เราทราบในความคิดเห็นหากคุณรู้เรื่องนี้หรือถ้าคุณรู้ว่าสิ่งแปลก ๆ อื่น ๆ สามารถทำได้
เรียนรู้ต่อไป!!





































![รายการที่เชื่อมโยงคืออะไร? [ส่วนที่ 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)