พจนานุกรมใน Python ด้วยไวยากรณ์และตัวอย่าง

พจนานุกรมคืออะไร Python?

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

  • คีย์จะเป็นองค์ประกอบเดียว
  • ค่าอาจเป็นรายการหรือรายการภายในรายการ ตัวเลข ฯลฯ

ไวยากรณ์สำหรับ Python พจนานุกรม

Dict = { ' Tim': 18,  xyz,.. }

พจนานุกรมจะแสดงอยู่ในวงเล็บปีกกา ภายในวงเล็บปีกกานี้ จะมีการประกาศคีย์และค่า คีย์แต่ละตัวจะแยกจากค่าด้วยเครื่องหมายโคลอน (:) ในขณะที่เครื่องหมายจุลภาคจะแยกแต่ละองค์ประกอบ

ไวยากรณ์สำหรับ Python พจนานุกรม

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

มีสองจุดสำคัญในขณะที่ใช้ปุ่มพจนานุกรม

  • ไม่อนุญาตให้มีมากกว่าหนึ่งรายการต่อคีย์ (ไม่อนุญาตให้มีคีย์ซ้ำกัน)
  • ค่าในพจนานุกรมสามารถเป็นประเภทใดก็ได้ ในขณะที่คีย์จะต้องไม่เปลี่ยนแปลงได้ เช่น ตัวเลข สิ่งทอ
  • คีย์พจนานุกรมคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ - ชื่อคีย์เดียวกันแต่มีตัวพิมพ์ต่างกันจะถือว่าเป็นคีย์ที่ต่างกัน 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 พจนานุกรม

สรุปโพสต์นี้ด้วย: