ประเภทของโครงสร้างข้อมูลใน Python: List, Tuple, Sets & Dictionary

เผยแพร่แล้ว: 2020-12-30

Python เป็นภาษาโปรดตลอดกาลสำหรับผู้ชื่นชอบ Data Science ทุกคน ลักษณะที่หลากหลายและวิธีการที่เข้าใจง่ายช่วยให้นักพัฒนามุ่งเน้นที่การทำความเข้าใจแนวโน้มในข้อมูลและรับข้อมูลเชิงลึกที่มีความหมายมากกว่าการใช้เวลาเพื่อแก้ไขจุดบกพร่องเซมิโคลอนเล็กน้อยหรือปิดวงเล็บเหนือศีรษะ งูหลามเป็นภาษาที่ได้รับความนิยมมากที่สุดในหมู่ผู้เริ่มต้นนั้นถูกดัดแปลงอย่างรวดเร็ว ดังนั้นจึงเป็นเรื่องสำคัญที่จะต้องเข้าใจภาษานี้เป็นอย่างดี

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

สารบัญ

ประเภทของโครงสร้างข้อมูลใน Python

1. รายการ

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

องค์ประกอบที่จัดเก็บมักจะเชื่อมโยงกับดัชนีที่กำหนดตำแหน่งในรายการ การกำหนดหมายเลขดัชนีเริ่มจากศูนย์ รายการเปลี่ยนแปลงได้ หมายความว่าองค์ประกอบในรายการสามารถเพิ่ม ลบ หรือเปลี่ยนแปลงได้แม้หลังจากคำจำกัดความ โครงสร้างข้อมูลนี้เหมือนกับอาร์เรย์ในภาษาอื่นๆ ซึ่งปกติจะเป็นเนื้อเดียวกัน หมายความว่าสามารถจัดเก็บข้อมูลประเภทเดียวเท่านั้นในอาร์เรย์ การดำเนินการพื้นฐานบางอย่างในรายการมีดังนี้:

  • หากต้องการประกาศรายการใน Python ให้ใส่ในวงเล็บเหลี่ยม:

sample_list = ['upGrad', '1', 2]

  • ในการเริ่มต้นรายการว่าง:

sample_list = รายการ ()

  • เพิ่มองค์ประกอบในรายการ:

sample_list.append('new_element')

  • ลบองค์ประกอบออกจากรายการ:

sample_list.remove(<ชื่อองค์ประกอบ>) ลบองค์ประกอบเฉพาะ

del sample_list[<element index num>] ลบองค์ประกอบที่ index . นั้น

sample_list.pop(<element index num>) ลบองค์ประกอบของดัชนีนั้นและส่งคืนองค์ประกอบที่ลบออก

  • ในการเปลี่ยนองค์ประกอบที่ดัชนีใด ๆ :

sample_list[<any index>] = รายการใหม่

  • Slicing : นี่เป็นคุณลักษณะสำคัญที่สามารถกรองรายการในรายการได้ในบางกรณี พิจารณาว่าคุณต้องการเพียงช่วงของค่าเฉพาะจากรายการ จากนั้นคุณสามารถทำได้โดย:

sample_list[start: stop: step] โดยที่ step กำหนดช่องว่างระหว่างองค์ประกอบและโดยค่าเริ่มต้นคือ 1

เรียนรู้เกี่ยวกับ: วิธีสร้างแผนภูมิการตัดสินใจที่สมบูรณ์แบบ

2. ทูเพิล

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

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

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

  • ในการเริ่มต้นทูเพิลว่าง:

sample_tuple = ทูเพิล ()

  • ในการประกาศ tuple ให้ใส่รายการในวงเล็บกลม:

sample_tuple = ('upGrad', 'Python', 'ML', 23432)

  • ในการเข้าถึงองค์ประกอบของทูเพิล:

sample_tuple[<index_num>]

3. ชุด

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

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

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

  • ในการเริ่มต้นชุดว่าง:

sample_set = ชุด ()

  • เพิ่มองค์ประกอบในชุด:

sample_set.add(item) เพิ่มรายการเดียวใน set

sample_set.update(items) เพิ่มได้หลายรายการผ่าน list, tuple หรือ set อื่น

  • ลบองค์ประกอบออกจากชุด:

sample_set.discard(item) ลบองค์ประกอบโดยไม่มีการเตือนหากองค์ประกอบไม่มีอยู่

sample_set.remove(item) ทำให้เกิดข้อผิดพลาดหากไม่มีองค์ประกอบที่จะลบ

  • ตั้งค่าการดำเนินการ (สมมติว่าสองชุดเริ่มต้น: A และ B):

A | B หรือ A.union(B): Union operation

A & B หรือ A. สี่แยก (B): การดำเนินการทางแยก

A – B หรือ A.difference (B): ผลต่างของสองเซต

A ^ B หรือ A.symmetric_difference(B) : ความแตกต่างสมมาตรของ sets

เช็คเอาท์: Data Frames ใน Python

4. พจนานุกรม

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

  • ในการเริ่มต้นพจนานุกรมเปล่า:

sample_dict = dict()

  • ในการเพิ่มองค์ประกอบลงในพจนานุกรม:

sample_dict[คีย์] = ค่า

อีกวิธีในการทำเช่นนี้คือ sample_dict = {key: value}

หากคุณพิมพ์พจนานุกรมนี้ ผลลัพธ์จะเป็น: {'key1': value, 'key2': value … }

  • ในการรับคีย์และค่าของพจนานุกรม:

sample_dict.keys(): ส่งคืนรายการคีย์

sample_dict.values(): ส่งคืนค่า list

sample_dict.items(): คืนค่าออบเจ็กต์มุมมองของคู่คีย์-ค่าเป็นทูเพิลในรายการ

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

บทสรุป

สิ่งสำคัญคือต้องเข้าใจความรู้พื้นฐานของโครงสร้างข้อมูลใน Python การอยู่ในอุตสาหกรรมข้อมูล โครงสร้างข้อมูลต่างๆ สามารถช่วยแก้ปัญหาเฉพาะหน้าของอัลกอริธึมพื้นฐานได้ดีขึ้น ทำให้นักพัฒนาซอฟต์แวร์ตระหนักถึงแนวทางปฏิบัติในการเข้ารหัสที่ดีที่สุดมากขึ้นเพื่อให้ได้ผลลัพธ์อย่างมีประสิทธิภาพ การใช้โครงสร้างข้อมูลแต่ละอย่างขึ้นอยู่กับสถานการณ์และต้องมีการปฏิบัติที่เข้มงวด

โครงสร้างข้อมูลมีความสำคัญอย่างไร?

โครงสร้างข้อมูลเป็นหนึ่งในเสาหลักของภาษาการเขียนโปรแกรมใดๆ พวกเขากำหนดวิธีการจัดเก็บและจัดการข้อมูลในหน่วยความจำ แนวคิดของโครงสร้างข้อมูลยังคงเหมือนเดิมไม่ว่าเราจะพูดถึงภาษาโปรแกรมใด

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

ฉันจะพัฒนาความเข้าใจโครงสร้างข้อมูลที่แข็งแกร่งได้อย่างไร

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

คุณควรศึกษาความซับซ้อนของเวลาและความซับซ้อนของพื้นที่ของอัลกอริทึมหรือโครงสร้างข้อมูลที่คุณกำลังทำงานอยู่เสมอ สิ่งนี้จะทำให้คุณมีความเข้าใจอย่างถ่องแท้เกี่ยวกับแนวคิด และคุณจะสามารถแก้ปัญหาใดๆ ที่ต้องใช้โครงสร้างข้อมูลเฉพาะนั้นได้

เมื่อใดจึงควรใช้รายการ Python สำหรับการจัดเก็บข้อมูล

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

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