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: วิธีนี้เป็นวิธีการที่เหมาะสมที่สุดในทั้งสามวิธี ในวิธีการข้างต้น จะต้องสร้างรายการว่างก่อน ความเข้าใจรายการช่วยให้คุณสามารถแทรกองค์ประกอบทั้งหมดในรายการโดยใช้บรรทัดเดียว