โครงสร้างข้อมูลในตัว 4 ตัวใน Python: พจนานุกรม, รายการ, ชุด, ทูเพิล
เผยแพร่แล้ว: 2020-03-24ในบทความนี้ เราจะเน้น ที่โครงสร้างข้อมูลใน Python และช่วยให้คุณเข้าใจหัวข้ออย่างชัดเจน คุณจะพบว่ามันคืออะไรและทำงานอย่างไร เราได้แชร์ตัวอย่างมากมายเพื่อให้แน่ใจว่าคุณจะไม่มีข้อสงสัยใดๆ เกี่ยวกับหัวข้อที่เราได้แชร์ไว้ที่นี่
ดังนั้นโดยไม่ต้องกังวลใจต่อไป มาเริ่มกันเลย
สารบัญ
โครงสร้างข้อมูลคืออะไร?
โครงสร้างข้อมูลช่วยให้คุณจัดระเบียบและจัดการข้อมูลของคุณได้อย่างมีประสิทธิภาพและประสิทธิผล พวกเขาปรับปรุงการเข้าถึงข้อมูลของคุณ การปรับเปลี่ยนข้อมูลที่เก็บไว้จะค่อนข้างตรงไปตรงมามากขึ้นเช่นกัน หากคุณมีโครงสร้างข้อมูลที่เหมาะสมอยู่แล้ว สิ่งเหล่านี้ทำให้คุณสามารถจัดระเบียบและจัดเก็บข้อมูลเพื่อให้คุณสามารถดำเนินการแบบเดียวกันได้ในภายหลังโดยไม่ต้องเผชิญกับปัญหาใดๆ
Python มีโครงสร้างข้อมูลสองประเภท โครงสร้างข้อมูล Python รองรับโดยปริยาย ได้แก่ Set, Dictionary, List และ Tuple นี่คือโครงสร้างข้อมูลในตัวของ Python
จากนั้นมีโครงสร้างข้อมูลที่คุณสามารถสร้างเองได้เพื่อให้ควบคุมการทำงานได้ดีขึ้น สิ่งเหล่านี้คือโครงสร้างข้อมูลที่ผู้ใช้กำหนดเอง และรวมถึงรายการที่เชื่อมโยง กราฟ ต้นไม้ กอง คิว และ HashMaps โครงสร้างข้อมูลที่กำหนดโดยผู้ใช้ยังมีอยู่ในภาษาโปรแกรมอื่นๆ ด้วย
อ่านเพิ่มเติม: 6 โครงสร้างข้อมูลที่ใช้บ่อยที่สุดใน R
โครงสร้างข้อมูลในตัวใน Python
Python มีโครงสร้างข้อมูลในตัวหลายแบบ โครงสร้างข้อมูลแบบบูรณาการเหล่านี้ช่วยคุณในการแก้ปัญหาการเขียนโปรแกรมได้อย่างรวดเร็วและง่ายดาย ดังที่เราได้กล่าวไว้ก่อนหน้านี้ Python มีโครงสร้างข้อมูลแบบบูรณาการดังต่อไปนี้:
- พจนานุกรม
- รายการ
- ชุด
- ทูเปิลส์
มาพูดถึงรายละเอียดกันทีละข้อ:
1. พจนานุกรม
เราใช้พจนานุกรมเพื่อจัดเก็บคู่คีย์-ค่า เช่นเดียวกับพจนานุกรมทางกายภาพที่มีคำที่เก็บไว้พร้อมกับความหมาย พจนานุกรมใน Python จะเก็บคู่คีย์-ค่าไว้ คำศัพท์คือกุญแจ ในขณะที่ความหมายต่างๆ ที่เกี่ยวข้องกับคำเหล่านั้นคือค่า ด้วยค่า คุณสามารถเข้าถึงคีย์ได้
คุณสามารถสร้างพจนานุกรมด้วยเหล็กดัดฟัน คุณยังสามารถใช้ฟังก์ชัน dict() เพื่อจุดประสงค์นี้ได้ นี่คือตัวอย่าง:
my_dict = {} #พจนานุกรมว่างเปล่า
พิมพ์ (my_dict)
my_dict = {1: 'A', 2: 'B'} #dictionary พร้อมองค์ประกอบ
พิมพ์ (my_dict)
ผลลัพธ์ของรหัสด้านบน:
{}
{1: 'A', 2: 'B'}
คุณสามารถเปลี่ยนค่าของพจนานุกรมผ่านปุ่มต่างๆ คุณต้องเข้าถึงคีย์ก่อนเพื่อเปลี่ยนค่า เมื่อคุณพบคีย์แล้ว คุณเพียงแค่ต้องเพิ่มคู่คีย์-ค่าที่จำเป็นเพื่อให้ได้ผลลัพธ์ที่ต้องการ
my_dict = {'First': 'A', 'Second': 'B'}
พิมพ์ (my_dict)
my_dict['Second'] = 'C++' #กำลังเปลี่ยนองค์ประกอบ
พิมพ์ (my_dict)
my_dict['Third'] = 'Ruby' #เพิ่มคู่คีย์-ค่า
พิมพ์ (my_dict)
ผลลัพธ์ของรหัสด้านบน:
{'แรก': 'A', 'ที่สอง': 'B'}
{'แรก': 'A', 'ที่สอง': 'C'}
{'แรก': 'A', 'ที่สอง': 'C', 'สาม': 'D'}
คุณสามารถลบค่าในพจนานุกรมของคุณโดยใช้ฟังก์ชัน pop() ฟังก์ชัน pop() ส่งคืนค่าที่คุณลบไป คุณสามารถดึงคู่คีย์-ค่าผ่านฟังก์ชัน popitem() มันคืนค่าทูเพิลของคู่ คุณสามารถล้างพจนานุกรมทั้งหมดได้เช่นกันโดยใช้ฟังก์ชัน clear() นี่คือตัวอย่าง:
my_dict = {'First': 'A', 'Second': 'B'', 'Third': 'C'}
a = my_dict.pop('Third') #pop องค์ประกอบ
พิมพ์ ('ค่า:', ก)
พิมพ์ ('พจนานุกรม:', my_dict)
b = my_dict.popitem() #pop คู่คีย์-ค่า
print('คีย์, ค่าคู่:', b)
พิมพ์ ('พจนานุกรม', my_dict)
my_dict.clear() #พจนานุกรมว่างเปล่า
พิมพ์ ('n', my_dict)
ผลลัพธ์ของรหัสด้านบน:
ค่า: C
พจนานุกรม: {'First': 'A', 'Second': 'B'}
คีย์ คู่ค่า: ('วินาที', 'B')
พจนานุกรม {'แรก': 'A'}
{}
อ่านเพิ่มเติม: แนวคิดและหัวข้อโครงการ Python
2. รายการ
เราใช้รายการเพื่อจัดเก็บข้อมูลตามลำดับ ทุกองค์ประกอบของรายการมีที่อยู่ ซึ่งเรียกอีกอย่างว่าดัชนี ค่าดัชนีของรายการเริ่มจาก 0 ไปจนถึงองค์ประกอบสุดท้ายที่อยู่ในรายการของคุณ และชื่อของมันคือการสร้างดัชนีเชิงบวก ในทำนองเดียวกัน เมื่อคุณย้อนกลับจากองค์ประกอบสุดท้ายไปยังองค์ประกอบแรกและนับจาก -1 จะเรียกว่าการจัดทำดัชนีเชิงลบ
คุณสามารถสร้างรายการโดยใช้วงเล็บเหลี่ยมและเพิ่มองค์ประกอบลงในรายการได้ตามที่คุณต้องการ หากคุณเว้นวงเล็บว่างไว้ รายการก็จะไม่มีองค์ประกอบใดๆ และรายการนั้นก็จะว่างเปล่าเช่นกัน นี่คือตัวอย่างรายการ:
my_list = [] #สร้างรายการว่าง
พิมพ์ (my_list)
my_list = [A, B, C, 'example', Z] #การสร้างรายการด้วย data
พิมพ์ (my_list)
ผลลัพธ์ของรหัสด้านบน:
[]
[A, B, C, 'ตัวอย่าง', Z]
คุณสามารถเพิ่มองค์ประกอบลงในรายการของคุณได้โดยใช้ฟังก์ชัน insert(),สิ่งที่แนบมา() และ append() ฟังก์ชัน insert() เพิ่มองค์ประกอบเหล่านั้นที่ส่งผ่านไปยังค่าดัชนี ฟังก์ชัน insert() จะเพิ่มขนาดของรายการเช่นกัน
ด้วยฟังก์ชัน append() คุณสามารถเพิ่มองค์ประกอบทั้งหมดที่ส่งผ่านให้เป็นองค์ประกอบเดียวได้ ในทางกลับกัน ฟังก์ชัน expand() สามารถเพิ่มองค์ประกอบทีละรายการได้
นี่คือตัวอย่าง:
my_list = [A, B, C]
พิมพ์ (my_list)
my_list.append([555, 12]) #เพิ่มเป็นองค์ประกอบเดียว
พิมพ์ (my_list)
my_list.extend([234, 'more_example']) #เพิ่มเป็นองค์ประกอบที่แตกต่างกัน
พิมพ์ (my_list)
my_list.insert(1, 'insert_example') #เพิ่มองค์ประกอบ i
พิมพ์ (my_list)
ผลลัพธ์ของรหัสข้างต้น:
[A, B, C]
[เอ บี ซี [555 12]]
[A, B, C, [555, 12], 234, 'ตัวอย่างเพิ่มเติม']
[A, 'insert_example', B, C, [555, 12], 234, 'more_example']
ขณะทำงานกับรายการ คุณอาจจำเป็นต้องลบองค์ประกอบบางอย่างออกด้วย คุณสามารถใช้คีย์เวิร์ด 'del' เป็นคีย์เวิร์ดในตัวของ Python และจะไม่ส่งคืนสิ่งใด หากคุณต้องการให้องค์ประกอบกลับคืนมา คุณจะต้องใช้ฟังก์ชัน pop() และหากต้องการลบองค์ประกอบโดยใช้ค่าของมัน คุณจะต้องใช้ฟังก์ชัน remove() นี่คือตัวอย่าง:

my_list = [A, B, C, 'ตัวอย่าง', Z, 10, 30]
del my_list[5] #delete องค์ประกอบที่ดัชนี 5
พิมพ์ (my_list)
my_list.remove('example') #remove องค์ประกอบที่มีค่า
พิมพ์ (my_list)
a = my_list.pop(1) #pop องค์ประกอบจากรายการ
พิมพ์ ('องค์ประกอบที่ปรากฏขึ้น: ', a, ' รายการที่เหลืออยู่: ', my_list)
my_list.clear() #ล้างรายการ
พิมพ์ (my_list)
ผลลัพธ์ของรหัสด้านบน:
[A, B, C, 'ตัวอย่าง', Z, 30]
[A, B, C, Z, 30]
Popped Element: 2 รายการที่เหลือ: [A, C, Z, 30]
[]
คุณสามารถส่งค่าดัชนีใน Python และรับค่าที่ต้องการได้
my_list = [A, B, C, 'ตัวอย่าง', Z, 10, 30]
สำหรับองค์ประกอบใน my_list: #access องค์ประกอบทีละตัว
พิมพ์ (องค์ประกอบ)
พิมพ์(my_list) #เข้าถึงองค์ประกอบทั้งหมด
พิมพ์(my_list[3]) #เข้าถึงดัชนี 3 องค์ประกอบ
print(my_list[0:2]) #เข้าถึงองค์ประกอบจาก 0 ถึง 1 และไม่รวม2
print(my_list[::-1]) #เข้าถึงองค์ประกอบในแบบย้อนกลับ
ผลลัพธ์ของรหัสด้านบน:
อา
บี
ค
ตัวอย่าง
Z
10
30
[A, B, C, 'ตัวอย่าง', Z, 10, 30]
ตัวอย่าง
[เอ บี]
[30, 10, Z, 'ตัวอย่าง', 3, 2, 1]
3. ชุด
คอลเลกชั่นของไอเท็มที่ไม่ซ้ำใครและไม่เรียงลำดับเรียกว่าชุด ดังนั้นหากคุณทำซ้ำข้อมูลด้วยเหตุผลบางอย่าง ข้อมูลนั้นจะปรากฏในชุดเดียวเท่านั้น เซตใน Python จะคล้ายกับเซตที่คุณอ่านในวิชาคณิตศาสตร์ จากคุณสมบัติจนถึงหน้าที่ คุณจะพบความคล้ายคลึงกันมากมายในหมู่พวกเขา
คุณสามารถสร้างชุดโดยใช้วงเล็บดอกไม้และส่งผ่านค่าของมัน นี่คือตัวอย่าง:
my_set = {A, B, C, D, E, E, E} #create set
พิมพ์ (my_set)
ผลลัพธ์ของรหัสด้านบน:
{A, B, C, D, E}
ดังที่เราได้กล่าวไว้ก่อนหน้านี้ คุณสามารถทำหน้าที่ทั้งหมดของชุดที่คุณดำเนินการในเลขคณิตในชุดของ Python ด้วยฟังก์ชัน union() คุณสามารถรวมข้อมูลที่มีอยู่ในสองชุดได้ ฟังก์ชัน intersection() ให้ข้อมูลที่มีอยู่ในทั้งสองชุดที่กล่าวถึง
คุณมีฟังก์ชันผลต่าง () ที่ให้คุณลบข้อมูลที่มีอยู่ในทั้งสองชุดและให้ข้อมูลที่ไม่ธรรมดาในหมู่พวกเขา ฟังก์ชัน symmetric_difference() ให้ข้อมูลที่เหลืออยู่ในชุดเหล่านั้น
my_set = {A, B, C, D}
my_set_2 = {C, D, E, F}
พิมพ์ (my_set.union (my_set_2), '———-', my_set | my_set_2)
พิมพ์ (my_set.intersection(my_set_2), '———-', my_set & my_set_2)
พิมพ์ (my_set.difference (my_set_2), '———-', my_set – my_set_2)
พิมพ์ (my_set.symmetric_difference(my_set_2), '———-', my_set ^ my_set_2)
my_set.clear()
พิมพ์ (my_set)
ผลลัพธ์ของรหัสด้านบน:
{A, B, C, D, E, F} ———- {A, B, C, D, E, F}
{C, D} ———- {C, D}
{A, B} ———- {A, B}
{A, B, E, F} ———- {A, B, E, F}
ชุด()
อ่านเพิ่มเติม: เงินเดือนนักพัฒนา Python ในอินเดีย
4. ทูเปิลส์
ทูเพิลนั้นคล้ายกับรายการ แต่เมื่อคุณป้อนข้อมูลในทูเพิลแล้ว คุณจะไม่สามารถเปลี่ยนแปลงได้เว้นแต่จะเปลี่ยนแปลงได้ การทำความเข้าใจสิ่งเหล่านี้อาจเป็นเรื่องยากเล็กน้อย แต่อย่ากังวล โค้ดตัวอย่างของเราอาจช่วยคุณได้ในเรื่องนั้น คุณสามารถสร้าง tuple ด้วยความช่วยเหลือของฟังก์ชัน tuple()
my_tuple = (A, B, C) #create tuple
พิมพ์ (my_tuple)
ผลลัพธ์ของรหัสด้านบน:
(เอ บี ค)
วิธีการเข้าถึงค่าใน tuples จะเหมือนกับในรายการ
my_tuple2 = (A, B, C, 'อัปเกรด') #เข้าถึงองค์ประกอบ
สำหรับ x ใน my_tuple2:
พิมพ์(x)
พิมพ์ (my_tuple2)
พิมพ์(my_tuple2[0])
พิมพ์ (my_tuple2[:])
ผลลัพธ์ของรหัสด้านบน:
อา
บี
ค
อัพเกรด
(A, B, C, 'อัปเกรด')
อา
(A, B, C, 'อัปเกรด')
บทสรุป
ตอนนี้ คุณต้องคุ้นเคยกับ โครงสร้างข้อมูลต่างๆ ใน Python แล้ว เราหวังว่าคุณจะพบว่าบทความนี้มีประโยชน์ โครงสร้างข้อมูลมีบทบาทสำคัญในการช่วยคุณในการจัดระเบียบ จัดการ และเข้าถึงข้อมูลของคุณ มีตัวเลือกมากมายให้เลือก และแต่ละตัวเลือกก็มีประโยชน์เฉพาะตัว
หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับ Python และโครงสร้างข้อมูล คุณควรดูหลักสูตรของเรา
หากคุณอยากรู้ที่จะเรียนรู้เกี่ยวกับ python ทุกอย่างเกี่ยวกับ data science ให้ลองดู PG Diploma in Data Science ของ IIIT-B & upGrad ซึ่งสร้างขึ้นสำหรับมืออาชีพที่ทำงานและมีกรณีศึกษาและโครงการมากกว่า 10 รายการ เวิร์กช็อปภาคปฏิบัติ การให้คำปรึกษากับอุตสาหกรรม ผู้เชี่ยวชาญ ตัวต่อตัวกับที่ปรึกษาในอุตสาหกรรม การเรียนรู้มากกว่า 400 ชั่วโมงและความช่วยเหลือด้านงานกับบริษัทชั้นนำ
ชนิดข้อมูลพจนานุกรมใช้เมื่อใด
พจนานุกรมสามารถกำหนดเป็นชนิดข้อมูลที่มีค่าซึ่งใช้ใน Python เป็นการรวบรวมข้อมูลที่จัดเก็บไว้ในคู่ของคีย์และค่าต่างๆ ตอนนี้ ค่าของพจนานุกรมสามารถเป็นประเภทข้อมูลใดก็ได้ แต่คีย์ต้องเป็นประเภทข้อมูลที่ไม่เปลี่ยนรูปแบบ เช่น ทูเพิล จำนวนเต็ม หรือสตริง
พจนานุกรมจะมีประโยชน์มากเมื่อคุณต้องการค้นหาค่าทันทีโดยไม่ต้องรวบรวมข้อมูลทั้งหมด นอกจากนั้น พจนานุกรมยังมีประโยชน์มากเมื่อลำดับของข้อมูลไม่สำคัญ ควรใช้ประเภทข้อมูลพจนานุกรมเมื่อการพิจารณาหน่วยความจำไม่ใช่ปัจจัยสำคัญ เนื่องจากมักใช้พื้นที่มากกว่าเมื่อเปรียบเทียบกับรายการและสิ่งอันดับ
list และ tuples ต่างกันอย่างไร?
List และ tuples เป็นประเภทข้อมูลลำดับทั้งสองที่มีประโยชน์สำหรับการจัดเก็บข้อมูลใน Python ความแตกต่างที่สำคัญที่สุดระหว่างทั้งสองคือรายการไม่แน่นอน ในขณะที่สิ่งอันดับจะไม่เปลี่ยนรูป ยิ่งไปกว่านั้น ความหมายของการวนซ้ำนั้นเร็วกว่ามากในทูเพิลเมื่อเทียบกับในรายการ
หากคุณต้องการดำเนินการแทรกและลบ รายการจะทำให้ง่ายสำหรับคุณ ในเวลาเดียวกัน สามารถเข้าถึงองค์ประกอบได้ดีขึ้นในทูเพิล ปัจจัยสำคัญอีกประการหนึ่งที่กำหนดการใช้โครงสร้างข้อมูลคือหน่วยความจำ ในที่นี้ รายการมักจะใช้หน่วยความจำมากกว่าเมื่อเปรียบเทียบกับสิ่งอันดับ
ชุดแตกต่างจากรายการอย่างไร
รายการถือเป็นเครื่องมือที่ทรงพลังที่สุดใน Python เนื่องจากไม่จำเป็นต้องเป็นเนื้อเดียวกันเสมอไป ทั้งรายการและชุดสามารถมีประเภทข้อมูลได้ทุกประเภท ขณะนี้ รายการสามารถมีองค์ประกอบที่ซ้ำกันได้ แต่ชุดไม่สามารถมีรายการซ้ำกันได้ และองค์ประกอบเหล่านั้นก็จะหายไปจากชุด
ลำดับขององค์ประกอบจะคงอยู่ในรายการ แต่ชุดไม่สามารถรักษาลำดับขององค์ประกอบได้ เนื่องจากรายการใช้พื้นที่ในการคำนวณเป็นจำนวนมาก จึงต้องใช้เวลาเป็นจำนวนมาก ในทางกลับกัน ชุดใช้ประโยชน์จากการแฮชเพื่อทำการค้นหาและจบลงได้เร็วกว่ารายการ