Python - พจนานุกรม

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

คีย์จะไม่ซ้ำกันภายในพจนานุกรมในขณะที่อาจไม่มีค่า ค่าของพจนานุกรมอาจเป็นประเภทใดก็ได้ แต่คีย์ต้องเป็นประเภทข้อมูลที่ไม่เปลี่ยนรูปเช่นสตริงตัวเลขหรือสิ่งที่เพิ่มขึ้น

การเข้าถึงค่าในพจนานุกรม

ในการเข้าถึงองค์ประกอบของพจนานุกรมคุณสามารถใช้วงเล็บเหลี่ยมที่คุ้นเคยพร้อมกับคีย์เพื่อรับค่าได้ ต่อไปนี้เป็นตัวอย่างง่ายๆ -

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Name']: ", dict['Name']
print "dict['Age']: ", dict['Age']

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

dict['Name']:  Zara
dict['Age']:  7

หากเราพยายามเข้าถึงรายการข้อมูลด้วยคีย์ซึ่งไม่ได้เป็นส่วนหนึ่งของพจนานุกรมเราจะได้รับข้อผิดพลาดดังนี้ -

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Alice']: ", dict['Alice']

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

dict['Alice']:
Traceback (most recent call last):
   File "test.py", line 4, in <module>
      print "dict['Alice']: ", dict['Alice'];
KeyError: 'Alice'

กำลังอัปเดตพจนานุกรม

คุณสามารถอัปเดตพจนานุกรมโดยการเพิ่มรายการใหม่หรือคู่คีย์ - ค่าแก้ไขรายการที่มีอยู่หรือลบรายการที่มีอยู่ดังที่แสดงด้านล่างในตัวอย่างง่ายๆ -

#!/usr/bin/python

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']

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

dict['Age']:  8
dict['School']:  DPS School

ลบองค์ประกอบของพจนานุกรม

คุณสามารถลบองค์ประกอบของพจนานุกรมแต่ละรายการหรือล้างเนื้อหาทั้งหมดของพจนานุกรม คุณยังสามารถลบพจนานุกรมทั้งหมดได้ในการดำเนินการเดียว

หากต้องการลบพจนานุกรมทั้งหมดอย่างชัดเจนให้ใช้ไฟล์ delคำให้การ. ต่อไปนี้เป็นตัวอย่างง่ายๆ -

#!/usr/bin/python

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 <module>
      print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable

Note - วิธีการ del () จะกล่าวถึงในส่วนต่อไป

คุณสมบัติของคีย์พจนานุกรม

ค่าพจนานุกรมไม่มีข้อ จำกัด สามารถเป็นวัตถุ Python ใด ๆ ก็ได้ไม่ว่าจะเป็นวัตถุมาตรฐานหรือวัตถุที่ผู้ใช้กำหนดเอง อย่างไรก็ตามไม่เป็นความจริงสำหรับคีย์

มีสองประเด็นสำคัญที่ต้องจำเกี่ยวกับคีย์พจนานุกรม -

(a)ไม่อนุญาตให้มีมากกว่าหนึ่งรายการต่อคีย์ ซึ่งหมายความว่าไม่อนุญาตให้ใช้คีย์ที่ซ้ำกัน เมื่อพบคีย์ที่ซ้ำกันระหว่างการมอบหมายงานสุดท้ายจะชนะ ตัวอย่างเช่น -

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print "dict['Name']: ", dict['Name']

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

dict['Name']:  Manni

(b)คีย์ต้องไม่เปลี่ยนรูป ซึ่งหมายความว่าคุณสามารถใช้สตริงตัวเลขหรือทูเปิลเป็นคีย์พจนานุกรมได้ แต่ไม่อนุญาตให้ใช้ ['คีย์'] ต่อไปนี้เป็นตัวอย่างง่ายๆ -

#!/usr/bin/python

dict = {['Name']: 'Zara', 'Age': 7}
print "dict['Name']: ", dict['Name']

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

Traceback (most recent call last):
   File "test.py", line 3, in <module>
      dict = {['Name']: 'Zara', 'Age': 7};
TypeError: unhashable type: 'list'

ฟังก์ชันและวิธีการพจนานุกรมในตัว

Python มีฟังก์ชันพจนานุกรมดังต่อไปนี้ -

ซีเนียร์ ฟังก์ชั่นพร้อมคำอธิบาย
1 cmp (dict1, dict2)

เปรียบเทียบองค์ประกอบของทั้งสองคำสั่ง

2 เลน (dict)

ระบุความยาวทั้งหมดของพจนานุกรม นี่จะเท่ากับจำนวนรายการในพจนานุกรม

3 str (dict)

สร้างการแสดงสตริงที่สามารถพิมพ์ได้ของพจนานุกรม

4 ประเภท (ตัวแปร)

ส่งคืนชนิดของตัวแปรที่ส่ง ถ้าตัวแปรที่ส่งเป็นพจนานุกรมก็จะส่งคืนประเภทพจนานุกรม

Python มีวิธีการใช้พจนานุกรมดังต่อไปนี้ -

ซีเนียร์ วิธีการพร้อมคำอธิบาย
1 dict.clear ()

เอาองค์ประกอบทั้งหมดของพจนานุกรมDict

2 dict.copy ()

ผลตอบแทนสำเนาตื้นของพจนานุกรมDict

3 dict.fromkeys ()

สร้างพจนานุกรมใหม่ที่มีกุญแจจากหมายเลขและค่าที่ตั้งจะคุ้มค่า

4 dict.get (คีย์ค่าเริ่มต้น = ไม่มี)

สำหรับคีย์คีย์ให้ส่งคืนค่าหรือค่าเริ่มต้นหากคีย์ไม่อยู่ในพจนานุกรม

5 dict.has_key (คีย์)

ผลตอบแทนที่แท้จริงถ้าสำคัญในพจนานุกรมDict , เท็จอย่างอื่น

6 dict.items ()

ส่งคืนรายการของคู่ทูเปิล (คีย์ค่า) ของdict

7 dict.keys ()

ส่งคืนรายการคีย์ของดิกชันนารี

8 dict.setdefault (คีย์ค่าเริ่มต้น = ไม่มี)

คล้ายกับ get () แต่จะตั้งค่า dict [คีย์] = ค่าเริ่มต้นหากคีย์ไม่ได้อยู่ใน dict

9 dict.update (dict2)

เพิ่มคู่คีย์ - ค่าของพจนานุกรมdict2ลงในdict

10 dict.values ​​()

รายการผลตอบแทนของพจนานุกรมDictค่า 's