พจนานุกรม 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 แต่คุณจะเห็นลำดับของค่าที่จัดเก็บไว้ในพจนานุกรมเสมอ