ประเภทของโครงสร้างข้อมูลใน Python: List, Tuple, Sets & Dictionary
เผยแพร่แล้ว: 2020-12-30Python เป็นภาษาโปรดตลอดกาลสำหรับผู้ชื่นชอบ 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 สำหรับการจัดเก็บข้อมูล
รายการสามารถใช้เพื่อจัดเก็บค่าต่างๆ ด้วยประเภทข้อมูลที่แตกต่างกัน และสามารถเข้าถึงได้โดยดัชนีที่เกี่ยวข้องเท่านั้น เมื่อคุณต้องการดำเนินการทางคณิตศาสตร์กับองค์ประกอบต่างๆ คุณสามารถใช้รายการได้ เนื่องจากจะช่วยให้คุณดำเนินการองค์ประกอบทางคณิตศาสตร์ได้โดยตรง
เนื่องจากรายการสามารถปรับขนาดได้ จึงสามารถใช้เพื่อจัดเก็บข้อมูลเมื่อคุณไม่แน่ใจเกี่ยวกับจำนวนองค์ประกอบที่จะจัดเก็บ