‫มาพูดถึงโครงสร้างข้อมูลต่อไปของเรากัน
‫และอันนี้เรียกว่าพจนานุกรม
‫ในภาษาอื่นๆ
‫อาจเรียกว่าตารางแฮช อาจเป็นแผนที่หรืออ็อบเจ็กต์
‫ใน Python เรามีแนวคิดเกี่ยวกับพจนานุกรม
‫หรืออย่างที่ Python ชอบเรียกมันว่า dict
‫ฉันต้องแน่ใจว่าฉันออกเสียงถูกต้อง
‫นั่นเป็นคำที่ยากจริงๆ ที่จะพูดเมื่อคุณกำลังบันทึกและทำซ้ำซ้ำแล้วซ้ำเล่า
‫พจนานุกรม.
‫มันคืออะไร?
‫มันเป็นประเภทข้อมูลใน Python แต่ก็เป็นโครงสร้างข้อมูลด้วย
‫จำไว้ว่าฉันได้กล่าวถึงแนวคิดของโครงสร้างข้อมูลนี้เมื่อเราพูดถึงรายการ
‫มีโครงสร้างข้อมูลแรกใน Python ที่เราเรียนรู้
‫เป็นวิธีที่เราจัดระเบียบข้อมูลในรูปแบบที่มีข้อดีและข้อเสียที่แตกต่างกันในการเข้าถึงข้อมูล
‫เช่น กับรายการ
‫เราเห็นว่าสั่งง่าย
‫เราสามารถเข้าถึงได้ผ่านดัชนีเหมือนศูนย์หนึ่ง
‫เราสามารถย้อนกลับได้ เราสามารถแทรกเข้าไปได้
‫มันดีมากจริงๆ
‫แล้วพจนานุกรมล่ะ?
‫มาดูกันว่าพจนานุกรมหน้าตาเป็นอย่างไร
‫พจนานุกรม?
‫ดูสิ ของแบบนี้จะมีกุญแจ
‫และมีค่า
‫แล้วก็จุลภาคอีกอัน
‫แล้วก็กุญแจอีกอัน
‫และอีกหนึ่งคุณค่า
‫มาถอดรหัสสิ่งนี้กัน
‫ดังนั้นฉันจึงใช้วงเล็บปีกกา ซึ่งหมายถึงพจนานุกรม
‫และไม่เหมือนรายการ เรามีสิ่งที่เราเรียกว่าคู่ค่าคีย์
‫กุญแจสำคัญคือสายอักขระให้เราคว้าค่า
‫ฉันหมายถึงอะไร
‫เพื่อให้เราเข้าถึงค่าเหล่านี้ได้ ฉันจะเปิดพจนานุกรม
‫แล้วพูดคีย์ในกรณีของเรา สมมติว่าเราต้องการคว้า B เราจะคว้ากุญแจ จากนั้นเมื่อเราพิมพ์
‫ได้ยินผลลัพธ์
‫เราก็ได้คุณค่าเช่นกัน
‫เรากำลังบอกคอมพิวเตอร์ว่า เฮ้ ฉันมีพจนานุกรมตัวแปรนี้
‫จำไว้ว่าฉันสามารถตั้งชื่อสิ่งนี้อะไรก็ได้ที่ฉันต้องการ
‫ฉันมีพจนานุกรมตัวแปรนี้
‫ฉันต้องการให้คุณไปหาคีย์ B และคีย์ B นี้ หากมีอยู่ คว้าค่ามาให้ฉัน
‫มันจะเข้าไปในหน่วยความจำของคุณหรือเข้าไปในหน่วยความจำของเครื่อง
‫มันจะค้นหาตำแหน่งที่ B ถูกเก็บไว้ในหน่วยความจำของเราและคว้าค่า
‫ดังนั้นในชั้นหนังสือ B เราจึงมีค่าเท่ากับว่าถ้าเราทำ C ซึ่งไม่มีอยู่จริง
‫ถ้าฉันคลิกเรียกใช้ ไม่ ฉันจะได้รับข้อผิดพลาด
‫มันบอกฉันว่า เฮ้ ขอโทษ คุณกำลังหาคีย์ C แต่ฉันไม่มีคีย์นั้นจริงๆ
‫และนี่คือสิ่งที่เป็นพจนานุกรม
‫พจนานุกรมเป็นคู่ค่าคีย์ที่ไม่เรียงลำดับ
‫สิ่งที่ฉันหมายถึงโดยที่ไม่เป็นระเบียบนั้นหมายความว่าพวกเขาไม่ได้อยู่ติดกันในความทรงจำ
‫จำไว้ว่า ด้วยรายการ เราสามารถเข้าถึงรายการที่มีดัชนีศูนย์ จากนั้นดัชนีหนึ่ง ดัชนีสอง ชั้นวางหนังสือทั้งหมดเหล่านั้น
‫หรือพจนานุกรมที่อยู่ติดกัน
‫ในทางกลับกัน พวกมันอยู่ทั่วทุกแห่ง
‫แม้ว่าฉันจะใส่ A และ B ที่นี่
‫นี่อาจอยู่ที่จุดหนึ่งในความทรงจำ และอีกจุดหนึ่งในความทรงจำ
‫และถ้าผมเพิ่มเข้าไป สมมุติว่า X นี่จะเป็นอีกจุดหนึ่งในความทรงจำ
‫และอาจไม่เป็นระเบียบ
‫บางทีฉันอาจเขียนว่า a, b, x แต่เมื่อฉันส่งคืนพจนานุกรมทั้งหมดจริงๆ
‫บางทีฉันอาจไม่มีสิ่งนี้
‫สิ่งเหล่านี้กระจัดกระจายไปทั่วความทรงจำของเรา
‫อย่างที่คุณเห็นที่นี่ เมื่อฉันได้รับพจนานุกรม ฉันได้รับสิ่งเหล่านี้ตามลำดับ
‫แต่นั่นเป็นเพียงเพราะมันเล็ก
‫ถ้าฉันมีพจนานุกรมขนาดใหญ่จริงๆ ฉันอาจจะไม่มีพจนานุกรมนั้นเพื่อใส่เข้าไป
‫ดังนั้นพจนานุกรมจึงเป็นคู่ค่าคีย์ที่ไม่เรียงลำดับ
‫และตราบใดที่เรารู้กุญแจ นั่นคือสิ่งที่เราต้องการกุญแจ จากนั้นเราก็ให้สิ่งนั้น และคอมพิวเตอร์ของเราก็จะรู้ว่า
‫เฮ้ ตำแหน่งไหนในความทรงจำที่จะมองหาเพื่อคว้าค่า
‫นี่คือสิ่งที่เจ๋งเกี่ยวกับโครงสร้างข้อมูล เช่น พจนานุกรมและรายการ
‫เป็นคอนเทนเนอร์ที่อยู่รอบ ๆ ข้อมูลใช่ไหม
‫นี่จะเป็นอะไรก็ได้ที่เราต้องการ
‫สมมติว่าเราต้องการให้รายการนี้เป็นรายการ
‫หนึ่งสองสาม.
‫บางทีเราต้องการให้เป็นสตริง
‫สวัสดี?
‫และบางทีนี่อาจเป็นค่าบูลีน
‫ชอบ.
‫จริง.
‫นั่นถูกต้องสมบูรณ์
‫ฉันสามารถเข้าถึง A.
‫เช่นนั้น
‫และฉันได้รับรายการ
‫จะทำอย่างไรถ้าฉันต้องการรายการที่สองในรายการ
‫ผมทำดัชนีแบบนี้
‫และที่นั่นคุณไป
‫ฉันเคยไปมาแล้ว และนี่ก็เหมือนกันกับรายการ และคุณจะเห็นสิ่งนี้บ่อยมาก โดยที่ถ้าเรามีรายการหรือเรียกมันว่ารายการของฉัน
‫และรายการของฉันมีพจนานุกรมที่มี สมมุติว่า ก
‫หนึ่ง.
‫และคุณรู้อะไรไหม
‫ลองคัดลอกและวางสิ่งนี้
‫เราจะทำสิ่งนี้
‫เราจะมีรายการแรกในอาร์เรย์
‫แบบนี้.
‫จากนั้นจุลภาค
‫แล้วรายการอื่นในอาร์เรย์
‫และคราวนี้ อันนี้มีสี่ ห้า หก
‫เพื่อให้ฉันสามารถคว้าจากรายการของฉัน
‫ที่.
‫รายการแรก.
‫ในอาร์เรย์
‫แล้วอาจจะคว้า
‫A ที่เป็นกุญแจสำคัญ
‫จำไว้ว่านี่คือเชือก และเราต้องการที่จะคว้า สมมุติว่ารายการที่สาม
‫งั้นเราไปกันเถอะ
‫ถึง.
‫ถ้าฉันเรียกใช้สิ่งนี้ฉันควรจะได้สามและสอง
‫ไปเลย
‫ตอนนี้ คุณอาจจะถามตัวเองว่า โครงสร้างข้อมูลเหล่านี้เกี่ยวข้องกันอย่างไร
‫เช่น ทำไมเราต้องมีพจนานุกรม?
‫ทำไมเราต้องมีรายการ?
‫ทำไมเราถึงมีสิ่งเดียวที่ทำได้ทุกอย่าง?
‫มันไม่ง่ายกว่าเหรอ?
‫ลองคิดดู เพราะในวิดีโอหน้า ฉันจะพยายามตอบคำถามนั้นให้คุณ