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

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