Python (ไพทอน) มีการจัดเก็บชุดข้อมูลตัวแปรอยู่หลายรูปแบบ เช่น ตัวแปรชนิดลิสต์ ตัวแปรชนิดทูเพิล ตัวแปรชนิดเซต และ ตัวแปรชนิดดิกชันนารี ซึ่งแต่ละตัวแปรนั้นก็จะมีฟังก์ชันที่แตกต่างกันออกไป สำหรับการเข้าถึงและการจัดการ ซึ่งในบทความนี้เราจะมาพูดถึงการฟังก์ชันต่างๆเกี่ยวกับ Dictionary ในภาษาไพทอนกัน

     Dictionary (ดิกชันนารี) คือการจัดเก็บข้อมูลแบบรายการที่สมาชิกแต่ละตัวจะมีองค์ประกอบ 2 อย่าง คือ key และ value โดยหากเราจะเข้าถึงสมาชิกต้องใช้ key เป็นตัวกำหนด ซึ่งเปรียบเสมือนพจนานุกรมที่ประกอบด้วยคำศัพท์ (key) และความหมายของคำศัพท์นั้นๆ(value) โดยข้อกำหนดในเบื้องต้นของข้อมูลทั้งสองอย่างนี้คือ
- key จะเป็นข้อมูลสตริงหรือตัวเลขก็ได้ โดยสมาชิกแต่ละตัวจะต้องมีคีย์ที่ไม่ซ้ำกัน
- value จะเป็นข้อมูลชนิดใดก็ได้ อาจเป็นข้อมูลประเภทรายการอื่นๆ เช่น ลิสต์ ทูเพิล หรือ เซต โดยค่าของสมาชิกแต่ละตัวสามารถซ้ำกันได้

ฟังก์ชันต่างๆเกี่ยวกับดิกชันนารี

ดิกชันนารีจะมีฟังก์ชันเฉพาะตัว สำหรับการเข้าถึงและจัดการกับสมาชิก โดยจะมีดังนี้

keys() อ่านคีย์ทั้งหมด โดยคืนค่ากลับมาเป็นทูเพิล
values() อ่านค่าทั้งหมด โดยคืนค่ากลับมาเป็นทูเพิล
items() อ่านรายการทั้งหมด โดยคืนค่ากลับมาเป็นทูเพิล
clear() ลบสมาชิกทั้งหมดของดิกชันนารี
get(คีย์) อ่านค่าของสมาชิกที่มีคีย์ตามที่ระบุ
pop(คีย์) อ่านค่าของสมาชิกที่มีคีย์ตามที่ระบุ จากนั้นลบสมาชิกตัวนั้น

การใช้งาน

     ฟังก์ชัน key() ไม่จำเป็นต้องใช้ก็ได้ เพราะทั่วไปแล้วการอ้างถึงคีย์ทั้งหมด มักใช้ร่วมกับลูป for-in ซึ่งเราอาจระบุแค่ชื่อดิกชันนารีก็หมายถึงคีย์อยู่แล้ว ตัวอย่างเช่น

x = {'th':'Thailand','jp':'Japan','us':'United State'}
for key in x.keys():
    print(x[key])
print('-'*20)
for key in x:
    print(x[key])

ผลลัพธ์

ผลลัพธ์การใช้งานฟังก์ชัน keys
ผลลัพธ์ keys

     จะเห็นได้ว่าผลลัพธ์ที่ออกมานั้น มีค่าเหมือนกันเลยเราจึงไม่จำเป็นที่จะต้องใช้ฟังก์ชันดังกล่าวก็ได้ แต่ในบางกรณีถ้าหากไม่มีการใช้ลูป for-in ก็ให้เราใช้งานฟังก์ชัน key() เพื่อทำการเข้าถึงสมาชิกแต่ละตัวได้

 

     ฟังก์ชัน values() จะคืนค่ามาเป็นค่าของสมาชิกทั้งหมด ซึ่งจะใช้เมื่อเวลาที่เราต้องการอ้างถึงค่าของสมาชิก โดยจะรูปแบบการใช้งานดังนี้

x = {'th':'Thailand','jp':'Japan','us':'United State'}
y = x.values()
for z in y:
    print(z)

ผลลัพธ์

ผลลัพธ์การใช้งานฟังก์ชัน values
ผลลัพธ์ values

     ผลลัพธ์ที่ออกมาก็จะเป็นการอ้างถึงค่าของสมาชิกแต่ละตัว ซึ่งจะคืนค่าออกมาเป็นค่าของสมาชิกทั้งหมด

 

     ฟังก์ชัน items()

x = {'th':'Thailand','jp':'Japan','us':'United State'}
for y in x.items():
    print(y)

ผลลัพธ์

ผลลัพธ์การใช้งานฟังก์ชัน items
ผลลัพธ์ items

     ผลลัพธ์ที่ออกมาจากการใช้งานฟังก์ชัน items() จะเป็นการอ่านค่าทั้งหมด ทั้ง key และ value จากนั้นจะทำการคืนค่าที่ได้ทั้งหมด ออกมาในรูปแบบชนิดทูเพิล

 

     ฟังก์ชัน get() และ pop() 

x = {'th':'Thailand','jp':'Japan','us':'United State'}

print(x.get('jp'))
print(x.pop('us'))
print(x)

ผลลัพธ์

ผลลัพธ์การใช้งานฟังก์ชัน get และ pop
ผลลัพธ์ get , pop

     ผลลัพธ์ที่ได้จากการใช้งานฟังก์ชัน get('jp') คือการอ่านค่าตามคีย์ที่เราได้ทำการระบุไว้ในฟังก์ชัน ดังนี้จึงได้ผลลัพธ์ออกมาเป็น Japan และผลลัพธ์การใช้งานฟังก์ชัน pop('us') คือการอ่านค่าตามคีย์ที่เราได้ทำการระบุไว้ในฟังก์ชัน จากนั้นลบสมาชิกตัวนั้นออกไป ซึ่งจะเห็นได้จากคำสั่ง print(x) ผลลัพธ์ที่ออกมา สมาชิกก็จะถูกลบไปหนึ่งตัวตามที่เราระบุนั่นเอง

    ซึ่งวิธีการในการใช้งานนั้นก็จะคล้ายๆกัน เราสามารถใช้งานได้ในรูปแบบตามตัวอย่างที่แสดงให้ดูในข้างต้นได้เลย เพียงเท่านี้เราก็สามารถใช้งานฟังก์ชันต่างๆที่เกี่ยวกับข้อมูลดิกชันนารีในภาษาไพทอนได้แล้ว 

 

 

 

ช่องทางการศึกษาเพิ่มเติมเกี่ยวกับ : Python 

ชนิดของข้อมูลในไพทอน (Python)

ตัวแปรชนิดลิส ใน ไพทอน Python Lists Data type

ตัวแปรชนิดทูเปิล ใน ไพทอน Python Tuples Data type

ตัวแปรชนิดดิกชันนารี ใน ไพทอน Python Dictionary Data type

ฟังก์ชั่นสำหรับแปลงชนิดข้อมูล ใน ไพทอน Python Data Type Conversion

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
SQL JOIN: การรวมข้อมูลจากหลายตารางในฐานข้อมูล
โดย witsarutt000 พฤ 14 มี.ค. 2024 4:07 pm บอร์ด SQL Knowledge
1
166
พฤ 14 มี.ค. 2024 5:44 pm โดย Sirayu View Topic SQL JOIN: การรวมข้อมูลจากหลายตารางในฐานข้อมูล
PHP การเปลี่ยนแปลงที่สร้างปรากฏการณ์ในโลกของเว็บ
โดย witsarutt000 พฤ 14 มี.ค. 2024 11:17 am บอร์ด PHP Knowledge
0
125
พฤ 14 มี.ค. 2024 11:17 am โดย witsarutt000 View Topic PHP การเปลี่ยนแปลงที่สร้างปรากฏการณ์ในโลกของเว็บ
ปัญหา Harddisk ขึ้น 100% เวลาเซฟไฟล์ หรือภาพ จะค้่างที่หน้าแท๊บ Expolorer
โดย Thanavat_n พ 13 มี.ค. 2024 11:02 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
5
270
พ 13 มี.ค. 2024 1:34 pm โดย Thanavat_n View Topic ปัญหา Harddisk ขึ้น 100% เวลาเซฟไฟล์ หรือภาพ จะค้่างที่หน้าแท๊บ Expolorer
ตู้รองเท้า ไอเท็มวิเศษช่วยจัดระเบียบคอลเลกชันรองเท้าคู่โปรด
โดย @Foretoday อ 12 มี.ค. 2024 1:46 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
184
อ 12 มี.ค. 2024 1:46 pm โดย @Foretoday View Topic ตู้รองเท้า ไอเท็มวิเศษช่วยจัดระเบียบคอลเลกชันรองเท้าคู่โปรด
แนะนำสถานที่น่าเที่ยวในจังหวัดชุมพรพร้อมวิธีการเดินทาง
โดย witsarutt000 จ 11 มี.ค. 2024 6:14 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
142
จ 11 มี.ค. 2024 6:14 pm โดย witsarutt000 View Topic แนะนำสถานที่น่าเที่ยวในจังหวัดชุมพรพร้อมวิธีการเดินทาง
ย้าย VM ข้าม Host ด้วย scp กรณีศึกษา Vmware ESXI
โดย mindphp อ 10 มี.ค. 2024 4:36 am บอร์ด Linux - Web Server
0
239
อ 10 มี.ค. 2024 4:36 am โดย mindphp View Topic ย้าย VM ข้าม Host ด้วย scp กรณีศึกษา Vmware ESXI
IP และ vpn (VMware)
โดย ballmykids อ 10 มี.ค. 2024 2:35 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
203
จ 11 มี.ค. 2024 3:19 pm โดย ballmykids View Topic IP และ vpn (VMware)
แบบนี้ต้องทำยังไง ในกรณีที่ Server เดิมเราได้ทำการ Raid 1 กับ HDD 2 ลูกแรกแล้ว
โดย Anonymous ศ 08 มี.ค. 2024 7:02 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
1
166
ศ 08 มี.ค. 2024 8:12 pm โดย mindphp View Topic แบบนี้ต้องทำยังไง ในกรณีที่ Server เดิมเราได้ทำการ Raid 1 กับ HDD 2 ลูกแรกแล้ว