พจนานุกรมใน Python ด้วยไวยากรณ์และตัวอย่าง
พจนานุกรมคืออะไร Python?
A พจนานุกรมใน Python เป็นชุดค่าข้อมูลแบบไม่เรียงลำดับและเปลี่ยนแปลงได้ที่เก็บคู่คีย์-ค่า แต่ละคู่คีย์-ค่าในพจนานุกรมจะแมปคีย์กับค่าที่เกี่ยวข้อง ทำให้ปรับให้เหมาะสมยิ่งขึ้น พจนานุกรมใน Python จะประกาศโดยใส่รายการคู่คีย์-ค่าที่คั่นด้วยเครื่องหมายจุลภาคโดยใช้เครื่องหมายปีกกา ({}) Python พจนานุกรมแบ่งออกเป็นสององค์ประกอบ: คีย์และค่า
- คีย์จะเป็นองค์ประกอบเดียว
- ค่าอาจเป็นรายการหรือรายการภายในรายการ ตัวเลข ฯลฯ
ไวยากรณ์สำหรับ Python พจนานุกรม
Dict = { ' Tim': 18, xyz,.. }
พจนานุกรมจะแสดงอยู่ในวงเล็บปีกกา ภายในวงเล็บปีกกานี้ จะมีการประกาศคีย์และค่า คีย์แต่ละตัวจะแยกจากค่าด้วยเครื่องหมายโคลอน (:) ในขณะที่เครื่องหมายจุลภาคจะแยกแต่ละองค์ประกอบ
คุณสมบัติของคีย์พจนานุกรม
มีสองจุดสำคัญในขณะที่ใช้ปุ่มพจนานุกรม
- ไม่อนุญาตให้มีมากกว่าหนึ่งรายการต่อคีย์ (ไม่อนุญาตให้มีคีย์ซ้ำกัน)
- ค่าในพจนานุกรมสามารถเป็นประเภทใดก็ได้ ในขณะที่คีย์จะต้องไม่เปลี่ยนแปลงได้ เช่น ตัวเลข สิ่งทอ
- คีย์พจนานุกรมคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ - ชื่อคีย์เดียวกันแต่มีตัวพิมพ์ต่างกันจะถือว่าเป็นคีย์ที่ต่างกัน Python พจนานุกรม
Python 2 ตัวอย่าง
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print (Dict['Tiffany'])
Python 3 ตัวอย่าง
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print((Dict['Tiffany']))
- ในโค้ดเรามีชื่อพจนานุกรมว่า Dict
- เราประกาศชื่อและอายุของบุคคลในพจนานุกรม โดยที่ชื่อคือ “กุญแจ” และอายุคือ “คุณค่า”
- ตอนนี้รันโค้ด
- มันดึงอายุของทิฟฟานี่จากพจนานุกรม
Python วิธีการพจนานุกรม
กำลังคัดลอกพจนานุกรม
คุณยังสามารถคัดลอกพจนานุกรมทั้งหมดไปยังพจนานุกรมใหม่ได้ ตัวอย่างเช่น เราได้คัดลอกพจนานุกรมต้นฉบับของเราไปยังชื่อพจนานุกรมใหม่ "Boys" และ "Girls"
Python 2 ตัวอย่าง
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
studentX=Boys.copy()
studentY=Girls.copy()
print studentX
print studentY
Python 3 ตัวอย่าง
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
studentX=Boys.copy()
studentY=Girls.copy()
print(studentX)
print(studentY)
- เรามีพจนานุกรมต้นฉบับ (Dict) พร้อมชื่อและอายุของเด็กชายและเด็กหญิงไว้ด้วยกัน
- แต่เราต้องการให้รายชื่อเด็กผู้ชายแยกจากรายชื่อเด็กผู้หญิง ดังนั้นเราจึงกำหนดองค์ประกอบของเด็กผู้ชายและเด็กผู้หญิงในชื่อพจนานุกรมแยกต่างหากว่า "Boys" และ "Girls"
- ตอนนี้เราได้สร้างชื่อพจนานุกรมใหม่อีกครั้ง "นักเรียน X" และ "นักเรียน Y" โดยที่คีย์และค่าทั้งหมดของพจนานุกรมเด็กผู้ชายจะถูกคัดลอกไปยังนักเรียน X และเด็กผู้หญิงจะถูกคัดลอกใน StudentY
- ตอนนี้คุณไม่จำเป็นต้องดูรายการทั้งหมดในพจนานุกรมหลัก (Dict) เพื่อตรวจสอบว่าใครเป็นเด็กผู้ชายและใครเป็นผู้หญิง คุณเพียงแค่ต้องพิมพ์ Student X หากคุณต้องการรายชื่อเด็กผู้ชาย และ StudentY หากคุณต้องการรายชื่อเด็กผู้หญิง
- ดังนั้น เมื่อคุณเรียกใช้พจนานุกรมนักเรียน X และนักเรียน Y มันจะแยกองค์ประกอบทั้งหมดที่มีอยู่ในพจนานุกรมของคำว่า "เด็กผู้ชาย" และ "เด็กผู้หญิง"
กำลังอัปเดตพจนานุกรม
คุณยังสามารถอัปเดตพจนานุกรมได้ด้วยการเพิ่มรายการใหม่หรือคู่คีย์-ค่าให้กับรายการที่มีอยู่หรือโดยการลบรายการที่มีอยู่ ในตัวอย่างนี้ เราจะเพิ่มชื่ออื่น "ซาราห์" ลงในพจนานุกรมที่มีอยู่ของเรา
Python 2 ตัวอย่าง
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Dict.update({"Sarah":9})
print Dict
Python 3 ตัวอย่าง
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Dict.update({"Sarah":9})
print(Dict)
- พจนานุกรม “Dict” ที่มีอยู่ของเราไม่มีชื่อ “Sarah”
- เราใช้วิธี Dict.update เพื่อเพิ่ม Sarah ลงในพจนานุกรมที่มีอยู่ของเรา
- ตอนนี้รันโค้ด มันจะเพิ่ม Sarah ลงในพจนานุกรมที่มีอยู่ของเรา
ลบคีย์ออกจากพจนานุกรม
Python พจนานุกรมช่วยให้คุณสามารถลบองค์ประกอบใดๆ ก็ได้จากรายการพจนานุกรม สมมติว่าคุณไม่ต้องการชื่อ Charlie ในรายการ คุณสามารถลบองค์ประกอบหลักโดยใช้โค้ดต่อไปนี้
Python 2 ตัวอย่าง
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
del Dict ['Charlie']
print Dict
Python 3 ตัวอย่าง
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
del Dict ['Charlie']
print(Dict)
เมื่อคุณเรียกใช้โค้ดนี้ ควรพิมพ์รายการพจนานุกรมโดยไม่มี Charlie
- เราใช้โค้ด del Dict
- เมื่อโค้ดถูกเรียกใช้ มันจะลบ Charlie ออกจากพจนานุกรมหลัก
รายการพจนานุกรม () วิธีการ
items() วิธีการส่งคืนรายการคู่ทูเพิล (คีย์, ค่า) ในพจนานุกรม
Python 2 ตัวอย่าง
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print "Students Name: %s" % Dict.items()
Python 3 ตัวอย่าง
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print("Students Name: %s" % list(Dict.items()))
- เราใช้วิธีรหัส item() สำหรับ Dict ของเรา
- เมื่อมีการดำเนินการโค้ด มันจะส่งคืนรายการของรายการ (คีย์และค่า) จากพจนานุกรม
ตรวจสอบว่ามีคีย์ที่กำหนดอยู่แล้วในพจนานุกรมหรือไม่
สำหรับรายการที่กำหนด คุณยังสามารถตรวจสอบได้ว่าพจนานุกรมย่อยของเรามีอยู่ในพจนานุกรมหลักหรือไม่ ที่นี่เรามีพจนานุกรมย่อยสองพจนานุกรมคือ "Boys" และ "Girls" ตอนนี้เราต้องการตรวจสอบว่าพจนานุกรม Boys ของเรามีอยู่ใน "Dict" หลักของเราหรือไม่ เพื่อสิ่งนั้น เราจะใช้วิธี for loop กับวิธี else if
Python 2 ตัวอย่าง
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
for key in Boys.keys():
if key in Dict.keys():
print True
else:
print False
Python 3 ตัวอย่าง
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
for key in list(Boys.keys()):
if key in list(Dict.keys()):
print(True)
else:
print(False)
- การขอ forloop ในโค้ดจะตรวจสอบแต่ละคีย์ในพจนานุกรมหลักสำหรับคีย์ Boys
- หากมีอยู่ในพจนานุกรมหลัก ควรพิมพ์ว่าเป็นจริง ไม่เช่นนั้นควรพิมพ์เป็นเท็จ
- เมื่อคุณรันโค้ด มันจะพิมพ์ "True" สามครั้ง เนื่องจากเรามีสามองค์ประกอบในพจนานุกรม "Boys" ของเรา
- ดังนั้นจึงแสดงว่ามี "เด็กชาย" อยู่ในพจนานุกรมหลักของเรา (Dict)
การเรียงลำดับพจนานุกรม
ในพจนานุกรม คุณยังสามารถจัดเรียงองค์ประกอบต่างๆ ได้ ตัวอย่างเช่น หากเราต้องการพิมพ์ชื่อขององค์ประกอบในพจนานุกรมของเราตามตัวอักษร เราต้องใช้ for a loop มันจะเรียงลำดับแต่ละองค์ประกอบของพจนานุกรมตามลำดับ
Python 2 ตัวอย่าง
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
Students = Dict.keys()
Students.sort()
for S in Students:
print":".join((S,str(Dict[S])))
Python 3 ตัวอย่าง
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
Students = list(Dict.keys())
Students.sort()
for S in Students:
print(":".join((S,str(Dict[S]))))
- เราประกาศนักเรียนตัวแปรสำหรับพจนานุกรมของเรา “Dict”
- จากนั้นเราใช้โค้ด Students.sort ซึ่งจะเรียงลำดับองค์ประกอบภายในพจนานุกรมของเรา
- แต่ในการจัดเรียงแต่ละองค์ประกอบในพจนานุกรม เราจะเรียกใช้ for a loop โดยการประกาศตัวแปร S
- ตอนนี้ เมื่อเรารันโค้ด for loop จะเรียกแต่ละองค์ประกอบจากพจนานุกรม และมันจะพิมพ์สตริงและค่าตามลำดับ
Python ฟังก์ชั่นที่สร้างขึ้นในพจนานุกรม
พจนานุกรม len() วิธีการ
ฟังก์ชัน len() บอกจำนวนคู่ในพจนานุกรม
ตัวอย่างเช่น
Python 2 ตัวอย่าง
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print "Length : %d" % len (Dict)
Python 3 ตัวอย่าง
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print("Length : %d" % len (Dict))
เมื่อดำเนินการฟังก์ชัน len (Dict) มันจะให้เอาต์พุตที่ "4" เนื่องจากมีสี่องค์ประกอบในพจนานุกรมของเรา
ประเภทตัวแปร
Python ไม่จำเป็นต้องประกาศพื้นที่หน่วยความจำสำรองอย่างชัดเจน มันเกิดขึ้นโดยอัตโนมัติ มีการใช้การกำหนดค่าให้กับตัวแปร “=” เครื่องหมายเท่ากับ รหัสที่ใช้กำหนดประเภทของตัวแปรคือ ” %type (Dict)”
Python 2 ตัวอย่าง
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print "variable Type: %s" %type (Dict)
Python 3 ตัวอย่าง
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print("variable Type: %s" %type (Dict))
- ใช้โค้ด %type เพื่อทราบประเภทของตัวแปร
- เมื่อโค้ดถูกดำเนินการ มันจะบอกประเภทตัวแปรว่าเป็นพจนานุกรม
Python รายการวิธี cmp()
วิธีการเปรียบเทียบ cmp() ถูกนำมาใช้ Python เพื่อเปรียบเทียบค่าและคีย์ของพจนานุกรมสองเล่ม ถ้าเมธอดส่งคืน 0 ถ้าทั้งสองพจนานุกรมเท่ากัน จะเป็น 1 ถ้า dic1 > dict2 และ -1 ถ้า dict1 < dict2
Python 2 ตัวอย่าง
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
print cmp(Girls, Boys)
Python 3 ตัวอย่าง
cmp is not supported in Python 3
- เรามีชื่อพจนานุกรมสองชื่อ "Boys" และ "Girls"
- ไม่ว่าคุณจะประกาศอันไหนก่อนในโค้ด “cmp(Girls, Boys)” จะถือเป็นพจนานุกรม 1 ในกรณีของเรา เราประกาศ “Girls” ก่อน ดังนั้นจะถือเป็นพจนานุกรม 1 และเด็กผู้ชายเป็นพจนานุกรม 2
- เมื่อดำเนินการโค้ด มันจะพิมพ์ออกมา -1 แสดงว่าพจนานุกรม 1 ของเราน้อยกว่าพจนานุกรม 2
พจนานุกรม Str (dict)
ด้วยเมธอด Str() คุณสามารถสร้างพจนานุกรมให้อยู่ในรูปแบบสตริงที่สามารถพิมพ์ได้
Python 2 ตัวอย่าง
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print "printable string:%s" % str (Dict)
Python 3 ตัวอย่าง
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print("printable string:%s" % str (Dict))
- ใช้โค้ด % str (Dict)
- มันจะส่งคืนองค์ประกอบพจนานุกรมเป็นรูปแบบสตริงที่สามารถพิมพ์ได้
นี่คือรายการวิธีพจนานุกรมทั้งหมด
| วิธี | Descriptไอออน | วากยสัมพันธ์ |
|---|---|---|
| สำเนา() | คัดลอกพจนานุกรมทั้งหมดไปยังพจนานุกรมใหม่ | dict.คัดลอก() |
| ปรับปรุง () | อัปเดตพจนานุกรมโดยการเพิ่มรายการใหม่หรือคู่คีย์-ค่าให้กับรายการที่มีอยู่หรือโดยการลบรายการที่มีอยู่ | Dict.update([อื่นๆ]) |
| รายการ () | ส่งคืนรายการคู่ทูเพิล (คีย์, ค่า) ในพจนานุกรม | พจนานุกรม.รายการ() |
| เรียงลำดับ () | คุณสามารถจัดเรียงองค์ประกอบได้ | พจนานุกรม.sort() |
| เลน () | ให้จำนวนคู่ในพจนานุกรม | เลน(dict) |
| ซีเอ็มพี() | เปรียบเทียบค่าและคีย์ของพจนานุกรมสองเล่ม | ซีเอ็มพี (dict1, dict2) |
| Str() | สร้างพจนานุกรมเป็นรูปแบบสตริงที่สามารถพิมพ์ได้ | Str(เขียนตามคำบอก) |
การรวมพจนานุกรม
ต่อไปนี้จะเข้าใจวิธีรวมพจนานุกรมสองเล่มให้เป็นพจนานุกรมเดียว
ฉันมีพจนานุกรมสองเล่มดังที่แสดงด้านล่าง:
พจนานุกรม1 : my_dict1
my_dict1 = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}
พจนานุกรม 2 : my_dict2
my_dict2 = {"firstName" : "Nick", "lastName": "Price"}
ให้เรารวมพจนานุกรมทั้ง my_dict1 และ my_dict2 เข้าด้วยกัน และสร้างพจนานุกรมเดียวที่มี namemy_dict
รวมสองพจนานุกรมโดยใช้เมธอด update()
เมธอด update() จะช่วยให้เราผสานพจนานุกรมหนึ่งเข้ากับอีกพจนานุกรมหนึ่งได้ ในตัวอย่างนี้ เราจะอัปเดต my_dict1 ด้วย my_dict2 หลังจากใช้เมธอด update() แล้ว my_dict1 จะมีเนื้อหาของ my_dict2 ดังที่แสดงด้านล่าง:
my_dict1 = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}
my_dict2 = {"firstName" : "Nick", "lastName": "Price"}
my_dict1.update(my_dict2)
print(my_dict1)
Output:
{'username': 'XYZ', 'email': 'xyz@gmail.com', 'location': 'Mumbai', 'firstName': 'Nick', 'lastName': 'Price'}
การรวมพจนานุกรมโดยใช้วิธี ** (จาก Python 3.5 เป็นต้นไป)
ตัว ** เรียกว่า กวาร์กอิน Pythonและมันจะได้ผลด้วย Python เวอร์ชัน 3.5+ เมื่อใช้ ** เราสามารถรวมพจนานุกรมสองเล่มเข้าด้วยกัน และมันจะส่งคืนพจนานุกรมที่รวมเข้าด้วยกัน การใช้ ** นำหน้าตัวแปรจะแทนที่ตัวแปรด้วยเนื้อหาทั้งหมด
นี่คือตัวอย่างการทำงานของการใช้ ** เพื่อรวมสองไดเร็กทอรี
my_dict1 = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}
my_dict2 = {"firstName" : "Nick", "lastName": "Price"}
my_dict = {**my_dict1, **my_dict2}
print(my_dict)
Output:
{'username': 'XYZ', 'email': 'xyz@gmail.com', 'location': 'Mumbai', 'firstName': 'Nick', 'lastName': 'Price'}
แบบทดสอบการเป็นสมาชิกพจนานุกรม
คุณสามารถทดสอบได้ว่ามีคีย์อยู่ในพจนานุกรมหรือไม่ การทดสอบนี้สามารถทำได้บนคีย์ของพจนานุกรมเท่านั้น ไม่ใช่ค่า การทดสอบความเป็นสมาชิกทำได้โดยใช้ in คำสำคัญ. เมื่อคุณตรวจสอบคีย์ในพจนานุกรมโดยใช้ in คีย์เวิร์ด นิพจน์จะคืนค่าเป็นจริงหากมีคีย์อยู่ และจะส่งคืนค่าเป็นเท็จหากไม่มี
นี่คือตัวอย่างที่แสดงการทดสอบเรือสมาชิกในพจนานุกรม
my_dict = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}
print("email" in my_dict)
print("location" in my_dict)
print("test" in my_dict)
Output:
True True False
สรุป
- พจนานุกรมในภาษาการเขียนโปรแกรมเป็นโครงสร้างข้อมูลประเภทหนึ่งที่ใช้ในการจัดเก็บข้อมูลที่เชื่อมต่อในทางใดทางหนึ่ง
- Python พจนานุกรมถูกกำหนดเป็นสององค์ประกอบคีย์และค่า
- พจนานุกรมไม่ได้จัดเก็บข้อมูลไว้ในลำดับใดโดยเฉพาะ ดังนั้นคุณอาจไม่ได้รับข้อมูลกลับในลำดับเดียวกับที่คุณป้อน
- คีย์จะเป็นองค์ประกอบเดียว
- ค่าอาจเป็นรายการหรือรายการภายในรายการ ตัวเลข ฯลฯ
- ไม่อนุญาตให้มีมากกว่าหนึ่งรายการต่อคีย์ (ไม่อนุญาตให้มีคีย์ซ้ำกัน)
- ค่าในพจนานุกรมสามารถเป็นประเภทใดก็ได้ ในขณะที่คีย์จะต้องไม่เปลี่ยนแปลงได้ เช่น ตัวเลข ทูเพิล หรือสตริง
- คีย์พจนานุกรมคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ - ชื่อคีย์เดียวกันแต่มีตัวพิมพ์ต่างกันจะถือว่าเป็นคีย์ที่ต่างกัน Python พจนานุกรม

