List vs Tuple: ความแตกต่างระหว่าง List และ Tuple
เผยแพร่แล้ว: 2021-01-08ใน Python รายการและทูเพิลเป็นคลาสของโครงสร้างข้อมูลที่สามารถจัดเก็บออบเจ็กต์หรือค่าได้ตั้งแต่หนึ่งรายการขึ้นไป รายการใช้เพื่อจัดเก็บหลายรายการในตัวแปรเดียวและสามารถสร้างได้โดยใช้วงเล็บเหลี่ยม ในทำนองเดียวกัน ทูเพิลยังสามารถจัดเก็บหลายรายการในตัวแปรเดียวและสามารถประกาศได้โดยใช้วงเล็บ
แม้ว่าจะมีข้อ แตกต่างมากมายระหว่าง list และ tuple แต่ ก็มีความคล้ายคลึงกันบางประการดังนี้:
- โครงสร้างข้อมูลทั้งสองเป็นประเภทข้อมูลลำดับทั้งสองที่เก็บคอลเลกชันของรายการ
- สามารถจัดเก็บรายการประเภทข้อมูลใดก็ได้
- รายการสามารถเข้าถึงได้โดยดัชนีของพวกเขา
สารบัญ
List vs Tuple
ตารางด้านล่างมีความ แตกต่างพื้นฐานระหว่าง list และ tuple ใน Python
รายการ | ทูเปิล |
เปลี่ยนแปลงได้ | มันเปลี่ยนไม่ได้ |
ความหมายของการวนซ้ำใช้เวลานานในรายการ | นัยของการวนซ้ำจะเร็วกว่ามากในทูเพิล |
การดำเนินการเช่นการแทรกและการลบทำได้ดีกว่า | สามารถเข้าถึงองค์ประกอบได้ดีขึ้น |
ใช้หน่วยความจำมากขึ้น | ใช้หน่วยความจำน้อยลง |
มีวิธีการในตัวมากมาย | ไม่มีวิธีการในตัวมากมาย |
ข้อผิดพลาดและการเปลี่ยนแปลงที่ไม่คาดคิดอาจเกิดขึ้นได้ง่ายในรายการ | ข้อผิดพลาดและการเปลี่ยนแปลงที่ไม่คาดคิดมักเกิดขึ้นในทูเพิล |
ส่วนต่อไปนี้เป็นเวอร์ชันโดยละเอียดของ list vs tuple เพื่อความเข้าใจที่ดีขึ้น
ความแตกต่างในไวยากรณ์
ตามที่กล่าวไว้ในบทนำ ไวยากรณ์สำหรับรายการและทูเพิลต่างกัน ตัวอย่างเช่น:
list_num = [10, 20, 30, 40]
tup_num = (10, 20, 30, 40)
การกลายพันธุ์
ความแตกต่างที่สำคัญที่สุดอย่างหนึ่งระหว่าง list และ tuple คือ list นั้นไม่แน่นอน ในขณะที่ tuple นั้นไม่เปลี่ยนรูป ซึ่งหมายความว่ารายการสามารถเปลี่ยนแปลงได้ และทูเพิลไม่สามารถเปลี่ยนแปลงได้
ดังนั้น การดำเนินการบางอย่างสามารถทำงานบนรายการได้ แต่ไม่ใช่กับทูเพิล ตัวอย่างเช่น ในวิทยาศาสตร์ข้อมูล หากมีรายการอยู่แล้ว สามารถกำหนดองค์ประกอบเฉพาะของรายการใหม่ได้ นอกจากนี้ รายการทั้งหมดสามารถกำหนดใหม่ได้ องค์ประกอบและส่วนขององค์ประกอบสามารถลบออกจากรายการได้
ในทางกลับกัน องค์ประกอบเฉพาะบน tuple ไม่สามารถกำหนดใหม่หรือลบได้ แต่สามารถแบ่งส่วน หรือแม้แต่กำหนดใหม่และลบ tuple ทั้งหมด เนื่องจากทูเพิลนั้นไม่เปลี่ยนรูป จึงไม่สามารถคัดลอกได้
เช็คเอาท์: Python กับ Java
ปฏิบัติการ
แม้ว่าจะมีการดำเนินการหลายอย่างที่คล้ายกับทั้งรายการและทูเพิล แต่รายการก็มีฟังก์ชันเพิ่มเติมที่ไม่สามารถใช้ได้กับทูเพิล การดำเนินการเหล่านี้คือการแทรกและการป๊อป และการเรียงลำดับและการลบองค์ประกอบในรายการ
ฟังก์ชั่น
ฟังก์ชัน Python บางฟังก์ชันใช้ได้กับทั้งโครงสร้างข้อมูล เช่น len, max, min, any, sum, all และ sorted
ขนาด
ใน Python ทูเพิลถูกจัดสรรบล็อกขนาดใหญ่ของหน่วยความจำโดยมีค่าโอเวอร์เฮดที่ต่ำกว่า เนื่องจากไม่สามารถเปลี่ยนรูปแบบได้ ในขณะที่รายการมีการจัดสรรบล็อกหน่วยความจำขนาดเล็ก ระหว่างทั้งสอง ทูเพิลมีหน่วยความจำน้อยกว่า ซึ่งช่วยในการสร้าง tuples ได้เร็วกว่ารายการเมื่อมีองค์ประกอบจำนวนมาก

ประเภทขององค์ประกอบ
องค์ประกอบที่เป็นของประเภทข้อมูลที่แตกต่างกัน กล่าวคือ องค์ประกอบที่ต่างกัน มักจะจัดเก็บไว้ในทูเปิล ในขณะที่องค์ประกอบที่เป็นเนื้อเดียวกัน องค์ประกอบของประเภทข้อมูลเดียวกัน มักจะถูกจัดเก็บไว้ในรายการ แต่นี่ไม่ใช่ข้อจำกัดสำหรับโครงสร้างข้อมูล องค์ประกอบประเภทข้อมูลที่คล้ายคลึงกันสามารถจัดเก็บใน tuples และองค์ประกอบประเภทข้อมูลที่แตกต่างกันสามารถจัดเก็บไว้ในรายการได้
ความยาว
ความยาวแตกต่างกันในโครงสร้างข้อมูลทั้งสอง ทูเปิลมีความยาวคงที่ ในขณะที่รายการมีความยาวผันแปร ดังนั้น ขนาดของรายการที่สร้างขึ้นสามารถเปลี่ยนแปลงได้ แต่นั่นไม่ใช่กรณีของสิ่งอันดับ
แก้จุดบกพร่อง
เมื่อพูดถึงการดีบัก ในรายการเทียบกับทูเปิล ทูเพิลนั้นง่ายต่อการดีบักสำหรับโปรเจ็กต์ขนาดใหญ่เนื่องจากไม่สามารถเปลี่ยนรูปแบบได้ ดังนั้น หากมีโครงการที่เล็กกว่าหรือมีข้อมูลน้อยกว่า ควรใช้รายการ เนื่องจากรายการสามารถเปลี่ยนแปลงได้ ในขณะที่ tuples ไม่สามารถทำได้ ทำให้ติดตาม tuples ได้ง่ายขึ้น
รายการที่ซ้อนกันและทูเพิล
ทูเปิลสามารถจัดเก็บไว้ในรายการ และในทำนองเดียวกัน รายการสามารถจัดเก็บไว้ในทูเปิล ในทูเพิลที่ซ้อนกัน ทูเพิลสามารถเก็บทูเพิลได้มากกว่า และในรายการแบบซ้อน รายการสามารถเก็บรายการได้มากขึ้น
ใช้
สิ่งสำคัญคือต้องเข้าใจว่ามีหลายกรณีที่ควรใช้โครงสร้างข้อมูลอย่างใดอย่างหนึ่งเช่น การใช้อันใดอันหนึ่งขึ้นอยู่กับโปรแกรมเมอร์ นั่นคือการเลือกอันหนึ่งขึ้นอยู่กับว่าพวกเขาต้องการเปลี่ยนข้อมูลในภายหลังหรือไม่
Tuples สามารถใช้เทียบเท่ากับพจนานุกรมโดยไม่ต้องใช้คีย์เพื่อเก็บข้อมูล เมื่อทูเพิลถูกจัดเก็บไว้ในรายการ การอ่านข้อมูลจะง่ายขึ้น
อ่าน: โครงสร้างข้อมูลประเภทอื่นๆ ใน Python
บทสรุป
บทความนี้ช่วยในการทำความเข้าใจความแตกต่างระหว่างรายการและทูเพิล แม้ว่าทั้งสองประเภทจะเป็นโครงสร้างข้อมูลใน Python แต่สิ่งสำคัญคือต้องทำความคุ้นเคยกับความแตกต่างเหล่านี้เมื่อทำการเลือก ความแตกต่างที่สำคัญที่สุดที่ควรทราบคือรายการไม่สามารถเปลี่ยนแปลงได้ และ tuples ไม่ใช่ รายการมีขนาดที่เปลี่ยนแปลงได้ และ tuples มีขนาดคงที่ สุดท้าย การดำเนินการใน tuples สามารถดำเนินการได้เร็วขึ้น
หากคุณกำลังอ่านบทความนี้ เป็นไปได้มากว่าคุณมีความทะเยอทะยานที่จะเป็นนักพัฒนา Python หากคุณสนใจที่จะเรียนรู้ python และต้องการทำให้เครื่องมือและไลบรารีต่างๆ สกปรก ให้ตรวจสอบ IIIT-B & upGrad's Executive PG Program in Data Science
เมื่อใดจึงควรใช้รายการ Python สำหรับการจัดเก็บข้อมูล
รายการ Python ถือเป็นโครงสร้างข้อมูลที่ดีที่สุดในการจัดเก็บข้อมูลในสถานการณ์ต่อไปนี้: รายการสามารถใช้เพื่อจัดเก็บค่าต่างๆ ด้วยประเภทข้อมูลที่แตกต่างกัน และสามารถเข้าถึงได้โดยดัชนีที่เกี่ยวข้องเท่านั้น เมื่อคุณต้องการดำเนินการทางคณิตศาสตร์กับองค์ประกอบต่างๆ คุณสามารถใช้รายการได้ เนื่องจากจะช่วยให้คุณดำเนินการองค์ประกอบทางคณิตศาสตร์ได้โดยตรง เนื่องจากรายการสามารถปรับขนาดได้ จึงสามารถใช้เพื่อจัดเก็บข้อมูลเมื่อคุณไม่แน่ใจเกี่ยวกับจำนวนองค์ประกอบที่จะจัดเก็บ
ระบุการดำเนินการต่างๆ ของชื่อทูเพิล
namedtuple ใน Python ดำเนินการต่างๆ ต่อไปนี้คือรายการของการดำเนินการทั่วไปบางส่วนที่ดำเนินการโดย namedtuple - เข้าถึงโดยดัชนี, เข้าถึงด้วยชื่อคีย์, make(), _asadict() โดยใช้ตัวดำเนินการ “**” (ดาวคู่), _fileds(), _replace () เป็นต้น
วิธีต่างๆ ในการสร้างรายการมีอะไรบ้าง
รายการ Python สามารถสร้างได้หลายวิธีที่กล่าวถึงที่นี่ การใช้ for loops - A for loop เป็นวิธีที่สำคัญที่สุดในการสร้างรายการ สามารถสร้างรายการโดยใช้ for loop ได้ 3 วิธีง่ายๆ - สร้างรายการว่าง, วนซ้ำองค์ประกอบทั้งหมดที่จะแทรก, ผนวกแต่ละองค์ประกอบในรายการโดยใช้ฟังก์ชัน append() การใช้ map(): สามารถใช้ฟังก์ชัน map() ใน Python เพื่อสร้างรายการได้ ฟังก์ชันนี้ยอมรับสองพารามิเตอร์ - ฟังก์ชัน: ฟังก์ชันที่แผนที่ส่งผ่านแต่ละรายการ iterable และ Iterable: องค์ประกอบหรือ iterable ที่จะจับคู่ การใช้ List comprehensions: วิธีนี้เป็นวิธีการที่เหมาะสมที่สุดในทั้งสามวิธี ในวิธีการข้างต้น จะต้องสร้างรายการว่างก่อน ความเข้าใจรายการช่วยให้คุณสามารถแทรกองค์ประกอบทั้งหมดในรายการโดยใช้บรรทัดเดียว