Python ฐานข้อมูล

แคตาล็อก (Dictionary)

แคตาล็อกเป็นชุดที่ไม่มีลำดับ แก้ไขได้และมีดัชนี ใน Python แคตาล็อกเขียนด้วยวงเล็บ มีตัวชื่อกุญแจและค่า:

ตัวอย่าง

สร้างและพิมพ์แคตาล็อก:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
print(thisdict)

การทดสอบตัวอย่าง

เข้าถึงรายการ

คุณสามารถเข้าถึงรายการของแคตาล็อกโดยอ้างอิงตัวชื่อกุญแจของมันด้วยการใช้การอ้างอิงในวงเล็บ:

ตัวอย่าง

เรียกค่าของตัวชื่อกุญแจ "model":

x = thisdict["model"]

การทดสอบตัวอย่าง

มีวิธีอื่นที่ชื่อ get() วิธีนี้จะให้ค่าที่เหมือนกัน:

ตัวอย่าง

เรียกค่าของตัวชื่อกุญแจ "model":

x = thisdict.get("model")

การทดสอบตัวอย่าง

แก้ไขค่า

คุณสามารถเปลี่ยนค่าของรายการเฉพาะด้วยการอ้างอิงตัวชื่อกุญแจของมัน:

ตัวอย่าง

แก้ไข "year" ให้เป็น 2019:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict["year"] = 2019

การทดสอบตัวอย่าง

วิ่งวนผ่านแคตาล็อก

คุณสามารถใช้ for วิ่งวนผ่านแคตาล็อก。

เมื่อวิ่งวนผ่านแคตาล็อก ค่าที่กลับมาคือตัวชื่อกุญแจของแคตาล็อก แต่ยังมีวิธีที่กลับมาด้วยค่า:

ตัวอย่าง

พิมพ์ตัวชื่อกุญแจทุกตัวตามลำดับ:

for x in thisdict:
  print(x)

การทดสอบตัวอย่าง

ตัวอย่าง

พิมพ์ค่าทุกค่าในแคตาล็อกตามลำดับ:

for x in thisdict:
  print(thisdict[x])

การทดสอบตัวอย่าง

ตัวอย่าง

คุณยังสามารถใช้ values() ฟังก์ชันนี้กลับมาด้วยค่าของแคตาล็อก:

for x in thisdict.values():
  print(x)

การทดสอบตัวอย่าง

ตัวอย่าง

ด้วยการใช้ฟังก์ชัน items() สำหรับเดินทางตามกุญแจและค่า:

for x, y in thisdict.items():
  print(x, y)

การทดสอบตัวอย่าง

ตรวจสอบว่าตัวชื่อกุญแจมีอยู่หรือไม่

เพื่อที่จะระบุว่ามีตัวชื่อกุญแจที่กำหนดในแคตาล็อกหรือไม่ ใช้ in คำกำหนด:

ตัวอย่าง

ตรวจสอบว่ามี "model" ในแคตาล็อกหรือไม่:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
if "model" in thisdict:
  print("Yes, 'model' is one of the keys in the thisdict dictionary")

การทดสอบตัวอย่าง

ความยาวแคตาล็อก

เพื่อที่จะระบุจำนวนรายการในแคตาล็อก (ตัวชื่อกุญแจ-ค่า), ใช้ len() วิธี。

ตัวอย่าง

พิมพ์จำนวนรายการในแคตาล็อก:

print(len(thisdict))

การทดสอบตัวอย่าง

เพิ่มรายการ

โดยการใช้ตัวชื่อกุญแจใหม่และเข้าใจให้มันมีค่า สามารถเพิ่มรายการเข้าแคตาล็อก:

ตัวอย่าง

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict["color"] = "red"
print(thisdict)

การทดสอบตัวอย่าง

ลบรายการ

มีหลายวิธีที่สามารถลบรายการจากแคตาล็อก:

ตัวอย่าง

pop() วิธีลบรายการที่มีชื่อกุญแจที่กำหนด:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict.pop("model")
print(thisdict)

การทดสอบตัวอย่าง

ตัวอย่าง

popitem() วิธีลบรายการที่ใส่ล่าสุด (ก่อน 3.7 ลบรายการสุ่มๆ):

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict.popitem()
print(thisdict)

การทดสอบตัวอย่าง

ตัวอย่าง

del thisdict["model"] thisdict.popitem()

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
คำเรียกใช้งานลบส่วนของภาษีที่มีชื่อฉบับเฉพาะ
print(thisdict)

การทดสอบตัวอย่าง

ตัวอย่าง

del thisdict["model"] del

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
คำเรียกใช้งานสังเกตความ
del thisdict

การทดสอบตัวอย่าง

ตัวอย่าง

clear() print(thisdict) #this จะทำให้เกิดข้อผิดพลาด เพราะ "thisdict" ไม่มีอยู่อีกต่อไป

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
คำเรียกใช้งานสังเกตความ
print(thisdict)

การทดสอบตัวอย่าง

thisdict.clear()

สร้างภาษี คุณไม่สามารถที่จะสร้างสำเนาภาษีด้วยการ dict2 = dict1dict2 และเพียงแค่สำเนา dict1 จะส่งผลลัพธ์ในอาทิตย์ที่ dict1 แก้ไขที่มีใน dict2 ของ

มีวิธีหลายอย่างที่สามารถสร้างสำเนาได้ หนึ่งในนั้นคือใช้วิธี copy()

ตัวอย่าง

ใช้ copy() วิธีสร้างสำเนา

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
mydict = thisdict.copy()
print(mydict)

การทดสอบตัวอย่าง

อีกวิธีหนึ่งที่สร้างสำเนาคือใช้วิธี dict()

ตัวอย่าง

ใช้ dict() วิธีสร้างสำเนาของภาษี

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
mydict = dict(thisdict)
print(mydict)

การทดสอบตัวอย่าง

ภาษีที่รวม

ภาษีก็สามารถมีภาษีอื่นมากมาย ซึ่งเรียกว่า ภาษีที่รวม

ตัวอย่าง

สร้างภาษีที่มีภาษีอื่นสามภาษี

myfamily = {
  "child1" : {
    "name" : "Phoebe Adele",
    "year" : 2002
  },
  "child2" : {
    "name" : "Jennifer Katharine",
    "year" : 1996
  },
  "child3" : {
    "name" : "Rory John",
    "year" : 1999
  }
}

การทดสอบตัวอย่าง

หรือ หากคุณต้องการที่จะรวมภาษีที่มีอยู่แล้วเป็นภาษีรวม

ตัวอย่าง

สร้างสามภาษีแบบฉบับ แล้วสร้างภาษีที่มีสามภาษีอื่น

child1 = {
  "name" : "Phoebe Adele",
  "year" : 2002
}
child2 = {
  "name" : "Jennifer Katharine",
  "year" : 1996
}
child3 = {
  "name" : "Rory John",
  "year" : 1999
}
myfamily = {
  "child1" : child1,
  "child2" : child2,
  "child3" : child3
}

การทดสอบตัวอย่าง

ฟังก์ชันสร้าง dict()

หรือเช่น dict() ฟังก์ชันสร้างแบบใหม่ของแม่แบบ

ตัวอย่าง

thisdict = dict(brand="Porsche", model="911", year=1963)
# โปรดสังเกตว่าคำเรียกใช้งานไม่ใช่สตริงแบบเทกษา
# โปรดสังเกตว่าใช้เส้นใต้รวมแทนเส้นขนานเพื่อการสร้างค่า
print(thisdict)

การทดสอบตัวอย่าง

วิธีแปลงฐานข้อมูล

Python มีกลุ่มวิธีที่สามารถใช้กับแปลงฐานข้อมูล

วิธี คำอธิบาย
clear() ลบทุกองค์ประกอบในแปลงฐานข้อมูล
copy() คืนสำเนาของแปลงฐานข้อมูล
fromkeys() คืนแปลงฐานข้อมูลที่มีค่ากุญแจและค่าประกอบที่กำหนด
get() คืนค่าของค่ากุญแจที่กำหนด
items() คืนรายการของตัวเลือกที่ประกอบด้วยกุญแจ-ค่าประกอบ
keys() คืนรายการของกุญแจของแปลงฐานข้อมูล
pop() ลบองค์ประกอบที่มีค่ากุญแจที่กำหนด
popitem() ลบตัวเลือกของกุญแจ-ค่าประกอบที่เพิ่มเข้ามาสุดท้าย
setdefault() คืนค่าของค่ากุญแจที่กำหนด ถ้าค่ากุญแจไม่มีอยู่ ก็จะเพิ่มค่ากุญแจด้วยค่าประกอบที่กำหนด
update() ปรับปรุงแปลงฐานข้อมูลด้วยค่ากุญแจ-ค่าประกอบที่กำหนด
values() คืนรายการของค่าทั้งหมดในแปลงฐานข้อมูล