Dictionary
Dictionary เป็นการเก็บข้อมูลประเภทหนึ่ง ซึ่งจะมีความคล้ายคลึงกับการเก็บตัวแปรหลายๆอันเข้าไปสู่ตัวแปรเดียวกัน
โดย Dictionary จะมีข้อมูลอยู่ 2 ประเภท นั่นคือ
- Key (พูดง่ายๆก็คือตัวแปร)
- Value (พูดง่ายๆก็คือค่าที่อยู่ในตัวแปร)
แต่ว่า Dictionary สามารถเก็บข้อมูล (Key และ Value) ได้หลายๆอัน ทำให้น้องๆสามารถเรียกค่า (Key) เพื่อเอาผลลัพท์ (Value) ได้
โดยน้องๆมีหลาย Key ก็ได้ แต่อาจจะไม่มี Value (ก็คือปล่อยให้ค่า Value เป็น None หรือว่า Null)
สร้าง dictionary
สร้าง Dictionary เปล่าๆ
น้องสามารถสร้างตัว Dictionary ใหม่โดยการใช้ฟังก์ชั่น dict() เพื่อเปลี่ยนตัวแปรให้เก็บข้อมูลแบบ Dictionary และสร้่าง dictionary เปล่าๆขึ้นมา 1 อัน
ตัวอย่างการเขียน
my_dictionary = dict()
สร้าง dictionary โดยการเขียนเอง
โดยฝั่งซ้ายจะเป็นค่า key และฝั่งขวาจะเป็นค่า value
my_dictionary = {
"happy" : 20,
"not happy" : 30,
"sad" : False
}
my_dictionary = {"happy" : 20, "not happy" : 30, "sad" : False}
โดยน้องๆอาจจะเขียนแบบที่ 1 ที่จะแยกบรรทัด หรือเขียนแบบบรรทัดเดียวกันก็ได้ครับ
แต่เขียนไปเป็นหลายบรรทัด น้องๆจะอ่านมันได้ง่ายขึ้นครับ จึงเหมาะกับน้องๆที่ไม่ชอบอ่านโค้ดยากๆ ยาวๆ
เรียกข้อมูลมาจาก Dictionary
แบบเหมือน Lists
ก็สามารถเรียกเหมือน List ได้เลย แต่การเรียกจะใส่เป็น Key แทน ไม่เหมือน List ที่จะใส่เป็นลำดับของข้อมูล
my_dictionary['happy'] # Returns 20
หรือน้องๆอาจจะเช็คก่อนว่ามี key นั้นๆอยู่หรือเปล่าโดยการใช้ keyword in
"happy" in my_dictionary # Return true
20 in my_dictionary # Return true
หากคืนกลับมาเป็น True (เหมือนกับตัวอย่าง) ก็จะบอกได้ว่ามี Key ที่ชื่อนั้นอยู่ใน dictionary นั้นๆ
แบบใช้ methods
ในแบบนี้ น้องๆก็จะได้ใช้ .get() และ .setdefault() ทำให้น้องๆอาจจะจัดการกับ Key ที่ไม่เคยอยู่จริงก็ได้ครับ
การใช้ .get() ก็เหมือนกับการเรียกถามหา Value จากค่า Key ที่น้องให้มาเลย แต่จะแตกต่างออกไปคือ หากว่ามันหาแล้วไม่เจอ ก็จะคืนค่า None กลับมาแทน
ตัวอย่างเช่น
my_dict.get('Kuma')
แต่หากว่าน้องๆไม่ต้องการที่จะขอคืนเป็น Null ก็สามารถใส่ Parameter default เข้าไปด้วยก็ได้ครับ เช่นว่า หากไม่เจอ ก็ให้คืนเป็น 0
my_dict.get('Kuma', default = 0)
และสำหรับ .setdefault() ก็จะเหมือนกับ .get() เลย แต่ว่าจะใส่ค่าที่น้องเคยหาเข้าไปใน dictionary ด้วย เหมือนมันสร้างว่า key ที่น้องหา เท่ากับ None แล้วก็เอาไปเก็บไว้ใน dictionary แล้วก็ค่อยเรียกค่านั้นอีกรอบ
เพื่มค่าเข้าใปใน Dictionary
ถ้าน้องๆต้องการเพื่มค่าเข้าไปใน Dictionary ก็สามารถทำการเพื่ม ด้วยการเขียน
<variableName>[<key>] = <value>
เช่นว่าพี่ต้องการบอกให้ kumamon = 12 และไปอยู่ในตัวแปร dictionary ที่ชื่อว่า my_dict ก็จะเขียนได้ดังนี้ครับ
my_dict['kumamon'] = 12