Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีสร้าง Dictionary ใน Python

Dictionary ใน Python เป็นโครงสร้างข้อมูลแบบหนึ่งที่ประกอบด้วยชุดของคู่คีย์-ค่า (key-value pairs) คีย์แต่ละตัวใน Dictionary จะต้องเป็น ค่าที่ไม่ซ้ำกัน (unique) คีย์แต่ละตัวจะเชื่อมโยงกับค่า (value) ของมัน ดังนั้น Dictionary จึงเก็บข้อมูลในรูปแบบ คีย์ : ค่า

การสร้าง Dictionary

ใน Python สามารถสร้าง Dictionary ได้โดยการวางคู่คีย์:ค่าต่างๆ ไว้ภายในวงเล็บปีกกา { } คู่คีย์:ค่าแต่ละคู่จะคั่นกันด้วยเครื่องหมายจุลภาค (,) ค่าใน Dictionary สามารถเป็นชนิดข้อมูล (datatype) ใดๆ ก็ได้ และสามารถซ้ำกันได้ แต่คีย์ใน Dictionary ห้ามซ้ำกัน และต้องเป็นค่าที่ไม่สามารถเปลี่ยนแปลงได้ (immutable)

คีย์ใน Dictionary มีความแตกต่างระหว่างตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ (case-sensitive) หมายความว่าคีย์สองตัวที่ชื่อเหมือนกันแต่ต่างกันในการพิมพ์เล็ก/ใหญ่ จะถูกจัดการเป็นคีย์ที่ต่างกัน

ตัวอย่าง

dict1 = {1: "Tutorials", 2: "Point", 3: 1116}
print("Dictionary 1", dict1)

dict2 = {1: "TutorialsPoint", "TP": "DictionaryTutorial"}
print("Dictionary 2", dict2)

ผลลัพธ์

Dictionary 1 {1: 'Tutorials', 2: 'Point', 3: 1116}
Dictionary 2 {1: 'TutorialsPoint', 'TP': 'DictionaryTutorial'}

จากตัวอย่างข้างต้นเห็นได้ชัดเจนว่า คีย์และค่าสามารถมีชนิดข้อมูลใดๆ ก็ได้ใน Dictionary แต่คีย์ทุกตัวต้องไม่ซ้ำกัน

เกิดอะไรขึ้นถ้ามีคีย์สองตัวที่ชื่อเหมือนกัน?

ลองดูตัวอย่างต่อไปนี้

ตัวอย่าง

dict1 = {1: "Tutorials", 1: "Point", 3: 1116}
print("Dictionary 1", dict1)

ผลลัพธ์

Dictionary 1 {1: 'Point', 3: 1116}

ตัวอย่างข้างต้นแสดงให้เห็นว่า หากมีคีย์สองตัวที่ชื่อเหมือนกัน ค่าของคีย์ก่อนหน้าจะถูกเขียนทับ (overwrite) ด้วยค่าใหม่ ในที่นี้คือ "Tutorials" ในคีย์ "1" ถูกเขียนทับด้วย "Point"

เราสามารถเก็บค่าทั้งสองนี้ (หรือมากกว่านั้น) ไว้ในคีย์เดียวได้ โดยการกำหนด List ให้กับคีย์

การใช้เมธอด "dict()"

เราสามารถสร้าง Dictionary ใน Python ได้โดยใช้เมธอด dict() ภายในเมธอด dict() เราจะกำหนดคู่คีย์:ค่าของ Dictionary

ตัวอย่าง

dict1 = dict({1: "Tutorials", 1: "Point", 3: 1116})
print("Dictionary 1", dict1)

dict2 = dict([(1, "Tutorials"), (2, "Point")])
print("Dictionary 2", dict2)

dict2 คือ Dictionary ที่สร้างขึ้นโดยใช้เมธอด dict() โดยแต่ละรายการเป็นคู่ (Pair)

ผลลัพธ์

Dictionary 1 {1: 'Point', 3: 1116}
Dictionary 2 {1: 'Tutorials', 2: 'Point'}

การสร้าง Empty Dictionary

Dictionary ว่างสามารถสร้างได้โดยการวางวงเล็บปีกกาสองคู่ { } เท่านั้น

ตัวอย่าง

dict1 = {}
print("Dictionary 1", dict1)

ผลลัพธ์

Dictionary 1 {}

การสร้าง Nested Dictionary

Nested Dictionary หมายถึง Dictionary ที่อยู่ภายใน Dictionary อีกชั้นหนึ่ง ใน Nested Dictionary คีย์หนึ่งตัวสามารถมีค่าเป็น Dictionary อีกตัวหนึ่งได้

ตัวอย่าง

dict1 = {1: "Tutorials", 2: "Point", 3: {'A': "Welcome", 'B': "To", 'C': "TutorialsPoint"}}
print(dict1)

ผลลัพธ์

{1: 'Tutorials', 2: 'Point', 3: {'A': 'Welcome', 'B': 'To', 'C': 'TutorialsPoint'}}

ในตัวอย่างข้างต้น คีย์ '3' มีค่าเป็น Dictionary อีกตัวหนึ่ง ดังนั้น dict1 จึงเป็น Nested Dictionary