Python - ตารางแฮช
ตารางแฮชเป็นโครงสร้างข้อมูลประเภทหนึ่งที่แอดเดรสหรือค่าดัชนีขององค์ประกอบข้อมูลถูกสร้างขึ้นจากฟังก์ชันแฮช ทำให้การเข้าถึงข้อมูลเร็วขึ้นเนื่องจากค่าดัชนีทำหน้าที่เป็นคีย์สำหรับค่าข้อมูล กล่าวอีกนัยหนึ่งตารางแฮชเก็บคู่คีย์ - ค่า แต่คีย์ถูกสร้างขึ้นผ่านฟังก์ชันแฮช
ดังนั้นฟังก์ชันการค้นหาและการแทรกขององค์ประกอบข้อมูลจะเร็วขึ้นมากเนื่องจากค่าคีย์กลายเป็นดัชนีของอาร์เรย์ที่เก็บข้อมูล
ใน Python ประเภทข้อมูลพจนานุกรมแสดงถึงการนำตารางแฮชไปใช้งาน คีย์ในพจนานุกรมเป็นไปตามข้อกำหนดต่อไปนี้
- คีย์ของพจนานุกรมสามารถแฮชได้กล่าวคือสร้างขึ้นโดยฟังก์ชันแฮชซึ่งสร้างผลลัพธ์ที่ไม่ซ้ำกันสำหรับแต่ละค่าที่ไม่ซ้ำกันที่ให้ไว้กับฟังก์ชันแฮ
- ลำดับขององค์ประกอบข้อมูลในพจนานุกรมไม่คงที่
ดังนั้นเราจึงเห็นการใช้งานของตารางแฮชโดยใช้ประเภทข้อมูลพจนานุกรมดังต่อไปนี้
การเข้าถึงค่าในพจนานุกรม
ในการเข้าถึงองค์ประกอบของพจนานุกรมคุณสามารถใช้วงเล็บเหลี่ยมที่คุ้นเคยพร้อมกับคีย์เพื่อรับค่าได้
# Declare a dictionary
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
# Accessing the dictionary with its key
print "dict['Name']: ", dict['Name']
print "dict['Age']: ", dict['Age']
เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -
dict['Name']: Zara
dict['Age']: 7
กำลังอัปเดตพจนานุกรม
คุณสามารถอัปเดตพจนานุกรมโดยการเพิ่มรายการใหม่หรือคู่คีย์ - ค่าแก้ไขรายการที่มีอยู่หรือลบรายการที่มีอยู่ดังที่แสดงด้านล่างในตัวอย่างง่ายๆ -
# Declare a dictionary
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School"; # Add new entry
print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']
เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -
When the above code is executed, it produces the following result −
dict['Age']: 8
dict['School']: DPS School
ลบองค์ประกอบของพจนานุกรม
คุณสามารถลบองค์ประกอบของพจนานุกรมแต่ละรายการหรือล้างเนื้อหาทั้งหมดของพจนานุกรม คุณยังสามารถลบพจนานุกรมทั้งหมดได้ในการดำเนินการเดียว หากต้องการลบพจนานุกรมทั้งหมดอย่างชัดเจนให้ใช้คำสั่ง del -
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
del dict['Name']; # remove entry with key 'Name'
dict.clear(); # remove all entries in dict
del dict ; # delete entire dictionary
print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']
สิ่งนี้ก่อให้เกิดผลลัพธ์ต่อไปนี้ โปรดทราบว่ามีการเพิ่มข้อยกเว้นเนื่องจากไม่มีพจนานุกรมหลัง del dict อีกต่อไป -
dict['Age']:
Traceback (most recent call last):
File "test.py", line 8, in
print "dict['Age']: ", dict['Age']; TypeError: 'type' object is unsubscriptable