พจนานุกรม Python: ทุกสิ่งที่คุณต้องการรู้ [พร้อมตัวอย่าง]
เผยแพร่แล้ว: 2020-04-14หากคุณกำลังทำงานกับ Python คุณต้องเคยได้ยินรายการ สตริง และทูเพิล วันนี้ เราจะมาพูดถึงองค์ประกอบที่สำคัญอีกอย่างของ Python – พจนานุกรม หลังจากคุณอ่านโพสต์นี้เสร็จแล้ว คุณควรมีความเข้าใจในพจนานุกรมของ Python เป็นอย่างดี วิธีสร้างและวิธีใช้งาน
สารบัญ
พจนานุกรม Python คืออะไร?
ใน Python พจนานุกรมคือการนำโครงสร้างข้อมูลไปใช้งานซึ่งปกติเรียกว่าอาเรย์ที่เชื่อมโยง ประกอบด้วยการรวบรวมข้อมูลที่ไม่มีการรวบรวมกันของค่าข้อมูล (เช่น แผนที่) อย่างไรก็ตาม ค่าข้อมูลที่จัดเก็บไว้ในพจนานุกรมจะแตกต่างจากประเภทข้อมูลอื่นๆ ที่มีค่าเพียงค่าเดียวเป็นองค์ประกอบ ซึ่งจะช่วยปรับพจนานุกรมให้เหมาะสม แต่ละคีย์: คู่ค่าจะจับคู่คีย์เฉพาะที่เกี่ยวข้องกับค่าของมัน
ในพจนานุกรมของ Python คีย์จะไม่ซ้ำกัน แต่ค่าอาจเป็นหรือไม่ใช่ก็ได้ ในขณะที่คีย์ต้องเป็นประเภทข้อมูลที่ไม่เปลี่ยนรูปแบบ (สตริง ตัวเลข และทูเพิล) ค่าจะเป็นประเภทใดก็ได้ นอกจากนี้ ในพจนานุกรม Python คีย์จะคำนึงถึงขนาดตัวพิมพ์ ดังนั้น คีย์ที่มีชื่อเหมือนกัน แต่กรณีที่แตกต่างกันจะได้รับการปฏิบัติต่างกัน
เรียนรู้เพิ่มเติมเกี่ยวกับ: ประเภทข้อมูล Python
พจนานุกรมกับรายการ
ใน Python พจนานุกรมและรายการแบ่งปันทั้งความเหมือนและความแตกต่าง ลักษณะทั่วไปที่ใช้ร่วมกันโดยพจนานุกรมและรายการรวมถึง:
- พวกมันเปลี่ยนแปลงได้
- พวกมันเป็นไดนามิก
- พวกเขาสามารถซ้อน - รายการสามารถมีรายการอื่นและพจนานุกรมสามารถมีพจนานุกรมอื่น นอกจากนี้ รายการสามารถเก็บพจนานุกรมและในทางกลับกัน
ความแตกต่างที่สำคัญระหว่างพจนานุกรมและรายการคือในขณะที่องค์ประกอบรายการสามารถเข้าถึงได้ (ขึ้นอยู่กับตำแหน่งในรายการ) ผ่านการจัดทำดัชนี องค์ประกอบพจนานุกรมสามารถเข้าถึงได้ผ่านคีย์
พจนานุกรมหลาม – วิธีการ
ตอนนี้ เราจะพูดถึงวิธีการที่ใช้บ่อยที่สุดในพจนานุกรม Python
- copy( ) – ส่งกลับสำเนาพจนานุกรมแบบตื้น
- clear( ) – ลบรายการทั้งหมดออกจากพจนานุกรม
- type( ) – ส่งกลับประเภทของตัวแปรที่ส่งผ่าน
- pop( ) – ลบและส่งคืนรายการจากพจนานุกรมหลังจากให้คีย์
- popitem( ) – ลบและส่งคืนรายการที่ต้องการ (คีย์, ค่า) นอกจากนี้ยังทำให้เกิด KeyError หากพจนานุกรมว่างเปล่า
- get( ) – ใช้เพื่อเข้าถึงค่าของคีย์
- รายการ ( ) – ส่งกลับมุมมองใหม่ของรายการพจนานุกรม (คีย์ ค่า)
- str( ) – สร้างการแสดงสตริงที่พิมพ์ได้ของพจนานุกรม
- pop(key[,d]) – มันลบรายการที่มีคีย์และส่งกลับค่าของมัน และหากไม่พบคีย์ มันจะส่ง คืน d อย่างไรก็ตาม หาก ไม่ได้ระบุ d และไม่พบคีย์ ระบบจะส่ง คืน KeyError
- get(key[,d]) – ส่งคืนค่าคีย์ หากไม่มีคีย์ มันจะส่งคืน d (ค่าเริ่มต้นเป็น None )
- fromkeys(seq[, v]) – ส่งคืนพจนานุกรมใหม่พร้อมคีย์จาก seq และค่าเท่ากับ v (ค่าเริ่มต้น คือ None )
- อัปเดต ([อื่นๆ]) – อัปเดตพจนานุกรมด้วยคู่คีย์/ค่าจากคู่ อื่น โดยเขียนทับคีย์ที่มีอยู่
จะสร้างพจนานุกรมได้อย่างไร?
คุณสามารถสร้างพจนานุกรม Python ได้โดยใส่รายการคู่คีย์-ค่าที่คั่นด้วยเครื่องหมายจุลภาคในวงเล็บปีกกา { } โคลอน “:” แยกแต่ละคีย์ออกจากค่าที่เกี่ยวข้อง:
ง = {
<คีย์>: <ค่า>,
<คีย์>: <ค่า>,
.
.
.
<คีย์>: <ค่า>
}
คุณยังสามารถใช้ฟังก์ชันในตัว dict( ) เพื่อสร้างพจนานุกรมได้ เช่น:
#พจนานุกรมเปล่า
my_dict = {}
# พจนานุกรมพร้อมปุ่มจำนวนเต็ม
my_dict = {1: 'apple', 2: 'ball'}
# พจนานุกรมพร้อมคีย์ผสม
my_dict = {'name': 'John', 1: [2, 4, 3]}
# ใช้ dict()
my_dict = dict({1:'apple', 2:'ball'})
#จากลำดับที่มีแต่ละรายการเป็นคู่
my_dict = dict([(1,'apple'), (2,'ball')])
จะเข้าถึงองค์ประกอบจากพจนานุกรมได้อย่างไร?
ในการเข้าถึงองค์ประกอบจากพจนานุกรม คุณต้องอ้างอิงชื่อคีย์ คุณสามารถใช้ เมธอด get( ) เพื่อดึงไอเท็ม หรือคุณสามารถระบุชื่อคีย์ภายในวงเล็บเหลี่ยม [ ] หากไม่พบคีย์ในพจนานุกรม เมธอด get( ) จะส่งกลับ None แทนที่จะเป็น KeyError
ต่อไปนี้คือตัวอย่างโค้ดที่ใช้เข้าถึงองค์ประกอบจากพจนานุกรม
#!/usr/bin/python
dict = {'ชื่อ': 'Zara', 'Age': 7, 'Class': 'First'}
พิมพ์ “dict['Name']: “, dict['Name']
พิมพ์ “dict['Age']: “, dict['Age']
จะเพิ่มหรือเปลี่ยนองค์ประกอบในพจนานุกรมได้อย่างไร?
เนื่องจากพจนานุกรม Python สามารถเปลี่ยนแปลงได้ คุณสามารถเพิ่มองค์ประกอบหรือเปลี่ยนค่าของรายการที่มีอยู่ในพจนานุกรมได้ คุณสามารถเพิ่มองค์ประกอบลงในพจนานุกรมได้หลายวิธี อย่างไรก็ตาม คุณสามารถเพิ่มค่าหนึ่งค่าลงในพจนานุกรมในคราวเดียวได้โดยกำหนดค่าพร้อมกับคีย์
ตัวอย่างเช่น dict[key] = 'value' หากต้องการอัปเดตค่าที่มีอยู่ในพจนานุกรม คุณต้องใช้ เมธอด update( ) ในตัว คุณต้องจำไว้ว่าในขณะที่เพิ่มค่าลงในพจนานุกรมหากมีค่าอยู่แล้ว ค่านั้นจะได้รับการอัปเดต มิฉะนั้น คีย์ใหม่ที่มีค่าจะถูกเพิ่มลงในพจนานุกรม

my_dict = {'name':'Jack', 'age': 26}
#อัพเดทค่า
my_dict['age'] = 27
#Output: {'age': 27, 'name': 'Jack'}
พิมพ์ (my_dict)
#เพิ่มรายการ
my_dict['address'] = 'ตัวเมือง'
# เอาต์พุต: {'address': 'Downtown', 'age': 27, 'name': 'Jack'}
พิมพ์ (my_dict)
จะลบหรือลบองค์ประกอบออกจากพจนานุกรมได้อย่างไร?
หากต้องการลบหรือลบรายการออกจากพจนานุกรม คุณสามารถใช้วิธี ป๊ อป ( ) มันจะลบรายการเฉพาะด้วย ket ที่ให้มาและส่งกลับค่า คุณยังสามารถใช้ เมธอด popitem( ) เพื่อลบและส่งคืนองค์ประกอบตามอำเภอใจ (คีย์และค่า) จากพจนานุกรม
หากคุณต้องการลบรายการทั้งหมดในครั้งเดียว คุณสามารถใช้วิธี clear ( ) คุณยังสามารถใช้คีย์เวิร์ด del เพื่อลบแต่ละรายการหรือ เมธอด del dict ( ) เพื่อลบพจนานุกรมทั้งหมดเอง
ตัวอย่างการใช้ del dict ( ) วิธีการ:
#!/usr/bin/python
dict = {'ชื่อ': 'Zara', 'Age': 7, 'Class': 'First'}
del dict['ชื่อ']; # ลบรายการด้วยคีย์ 'ชื่อ'
dict.clear(); # ลบรายการทั้งหมดใน dict
เดล ดิค ; # ลบพจนานุกรมทั้งหมด
พิมพ์ “dict['Age']: “, dict['Age']
พิมพ์ “dict['School']: “, dict['School']
เรียนรู้เพิ่มเติม: เงินเดือนนักพัฒนา Python ในอินเดีย
จะวนซ้ำผ่านพจนานุกรมได้อย่างไร?
ในพจนานุกรม Python คุณสามารถวนซ้ำโดยใช้ for loop เมื่อคุณวนรอบพจนานุกรม คีย์ ของพจนานุกรมคือค่าที่ส่งกลับ
ตัวอย่างของการวนซ้ำผ่านพจนานุกรมคือ:
สำหรับ x ใน thisdict:
พิมพ์(x)
อ่าน: ฟังก์ชัน Python ที่สำคัญที่สุด
จะตรวจสอบว่ามีคีย์อยู่ในพจนานุกรมได้อย่างไร?
คุณสามารถใช้ คีย์เวิร์ด “ ใน ” เพื่อตรวจสอบว่ามีคีย์เฉพาะในพจนานุกรมหรือไม่ เช่น
นี่ดิกต์ = {
“แบรนด์”: “เฟอร์รารี”,
“รุ่น”: “เดย์โทน”,
“ปี”: “1968”
}
ถ้า "รุ่น" ใน thisdict:
print("ใช่ 'model' เป็นหนึ่งในกุญแจสำคัญในพจนานุกรม thisdict")
จะกำหนดความยาวของพจนานุกรมได้อย่างไร?
คุณสามารถกำหนดความยาวของพจนานุกรม กล่าวคือ กำหนดจำนวนองค์ประกอบ (คู่คีย์:ค่า) ที่จะมี โดยใช้ เมธอด len( ) ดังนี้
พิมพ์(len(thisdict))
จะคัดลอกพจนานุกรมได้อย่างไร?
คุณสามารถคัดลอกพจนานุกรมโดยใช้วิธีการ คัดลอก ( ) ในตัว อย่างไรก็ตาม คุณไม่สามารถคัดลอกพจนานุกรมโดยพิมพ์ dict2 = dict1 เนื่องจาก dict2 จะเป็นการอ้างอิงถึง dict1 เท่านั้น
นี่คือตัวอย่างโดยใช้ เมธอด copy( )
นี่ดิกต์ = {
“แบรนด์”: “ฟอร์ด”,
“รุ่น”: “มัสแตง”,
“ปี”: 2507
}
mydict = thisdict.copy()
พิมพ์
พจนานุกรม Python: ความเข้าใจ
ใน Python ความเข้าใจในพจนานุกรมเป็นวิธีที่ตรงไปตรงมาและเรียบร้อยในการสร้างพจนานุกรมใหม่จาก iterable ประกอบด้วยคู่นิพจน์ (คีย์: ค่า) ตามด้วยคำสั่งภายในวงเล็บปีกกา { } ความเข้าใจในพจนานุกรมสามารถมีหลาย คำสั่ง for หรือ if
ต่อไปนี้คือตัวอย่างสำหรับการสร้างพจนานุกรมโดยที่แต่ละรายการเป็นคู่ของตัวเลขและกำลังสอง
สี่เหลี่ยม = {x: x*x สำหรับ x ในช่วง (6)}
# เอาท์พุต: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
พิมพ์ (สี่เหลี่ยม)
อ่านเพิ่มเติม: Python Data Visualization Libraries
ห่อ
โดยพื้นฐานแล้ว – ความรู้พื้นฐานทั้งหมดที่คุณต้องรู้เกี่ยวกับพจนานุกรม Python!
หากคุณอยากเรียนรู้เกี่ยวกับ Python ทุกเรื่องเกี่ยวกับ Data Science ลองดูหลักสูตร Data Science Certification ของ upGrad ซึ่งสร้างขึ้นสำหรับมืออาชีพที่ทำงานและมีกรณีศึกษาและโครงการมากกว่า 10 แบบ เวิร์กช็อปภาคปฏิบัติจริง การให้คำปรึกษากับผู้เชี่ยวชาญในอุตสาหกรรม แบบตัวต่อตัว -1 พร้อมที่ปรึกษาในอุตสาหกรรม การเรียนรู้มากกว่า 400 ชั่วโมงและความช่วยเหลือด้านงานกับบริษัทชั้นนำ
พจนานุกรมใน Python มีความจำเป็นอย่างไร?
การรวบรวมค่าข้อมูลที่ไม่เรียงลำดับคือพจนานุกรม Python จำเป็นต้องใช้พจนานุกรมใน Python เพื่อจัดเก็บค่าข้อมูลเช่นเดียวกับแผนที่ ในประเภทข้อมูลอื่นๆ ทั้งหมด สามารถเก็บค่าได้เพียงค่าเดียวเป็นองค์ประกอบ แต่พจนานุกรมสามารถเก็บคู่คีย์:ค่าได้ คู่นี้ทำให้การทำงานของพจนานุกรมดีขึ้นเล็กน้อย
สำหรับการสร้างพจนานุกรมใน Python คุณเพียงแค่วางองค์ประกอบภายในวงเล็บปีกกาโดยแยกองค์ประกอบทั้งหมดด้วย 'เครื่องหมายจุลภาค' ค่าในพจนานุกรมสามารถทำซ้ำและทำซ้ำได้ แต่คุณไม่สามารถทำซ้ำคีย์ในพจนานุกรมได้ คีย์ในพจนานุกรมต้องคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ดังนั้นแม้คีย์สองปุ่มที่มีชื่อเดียวกันแต่กรณีต่างกันจะได้รับการปฏิบัติต่างกัน
สิ่งที่สามารถเก็บไว้ในพจนานุกรม Python?
พจนานุกรมใช้ใน Python สำหรับการดึงข้อมูลโดยใช้คีย์เฉพาะใดๆ ทุกสิ่งที่คุณสามารถเก็บไว้ในตัวแปร Python สามารถเก็บไว้ในพจนานุกรม Python ได้ คุณยังสามารถซ้อนพจนานุกรมหนึ่งไปยังอีกพจนานุกรมหนึ่งได้ด้วยการสร้างรายการ ในทางตรงกันข้าม กุญแจจะต้องไม่เปลี่ยนรูป
คุณสามารถดึงค่าที่เก็บไว้ได้อย่างง่ายดายโดยการเรียกคีย์ที่จัดเก็บค่าเฉพาะ หากคุณทำการเปลี่ยนแปลงใดๆ กับรายการที่ส่งคืน การเปลี่ยนแปลงนั้นจะได้รับผลกระทบในพจนานุกรมด้วย หนึ่งต้องเข้าใจว่าค่าที่เก็บไว้ในพจนานุกรมและรายการที่ดึงมาเป็นเพียงวัตถุเดียวกัน
Hashtable และ Dictionary ต่างกันอย่างไร
Hashtable คือคอลเล็กชันที่ไม่ใช่แบบทั่วไป ในขณะที่ Dictionary คือคอลเล็กชันข้อมูลทั่วไป คุณได้รับอนุญาตให้จัดเก็บคู่คีย์-ค่าของข้อมูลเดียวกันและประเภทข้อมูลที่แตกต่างกัน ในขณะที่คุณสามารถเก็บเฉพาะคู่คีย์-ค่าประเภทข้อมูลเดียวกันในพจนานุกรมเท่านั้น
เนื่องจากมี boxing และ unboxing ใน Hashtable กระบวนการดึงข้อมูลจึงช้ากว่าเมื่อเทียบกับพจนานุกรม ไม่มีการจัดลำดับใน Hashtable แต่คุณจะเห็นลำดับของค่าที่จัดเก็บไว้ในพจนานุกรมเสมอ