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