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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
แนะนำการตั้งค่า Forward Email เฉพาะบางรายการหน่อย
โดย Narisara อ 18 มี.ค. 2025 11:31 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
13
44
อ 18 มี.ค. 2025 4:26 pm โดย Narisara View Topic แนะนำการตั้งค่า Forward Email เฉพาะบางรายการหน่อย
ต้องการสำรองแชทไลน์ ผ่านคอมฟิวเตอร์ แนะนำที
โดย Narisara จ 17 มี.ค. 2025 11:30 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
23
จ 17 มี.ค. 2025 11:30 am โดย Narisara View Topic ต้องการสำรองแชทไลน์ ผ่านคอมฟิวเตอร์ แนะนำที
(Close) B - Master ของไบโอนิค เข้าไม่ได้ ขึ้น Internal Server Error
โดย Narisara จ 17 มี.ค. 2025 11:24 am บอร์ด MDERPv2 - Tester
2
9
จ 17 มี.ค. 2025 6:32 pm โดย Narisara View Topic (Close) B - Master ของไบโอนิค เข้าไม่ได้ ขึ้น Internal Server Error
วิธีพัฒนาทักษะการอ่านสำหรับการสอบ IELTS: เริ่มจาก 0 ก็เก่งได้ โดยพี่หนุ่มจาก SkoolELT
โดย rinradap จ 17 มี.ค. 2025 11:14 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
24
จ 17 มี.ค. 2025 11:14 am โดย rinradap View Topic วิธีพัฒนาทักษะการอ่านสำหรับการสอบ IELTS: เริ่มจาก 0 ก็เก่งได้ โดยพี่หนุ่มจาก SkoolELT
R - selenium_thaivi_settrade_bot - bot เก็บข้อมูลบทวิเคราะห์หุ้น
โดย guitar66 ส 15 มี.ค. 2025 7:42 pm บอร์ด ThaiVIBOT - Developer
2
4
ส 15 มี.ค. 2025 8:05 pm โดย guitar66 View Topic R - selenium_thaivi_settrade_bot - bot เก็บข้อมูลบทวิเคราะห์หุ้น
R - selenium_thaivi_set_bot - bot เก็บข้อมูลข่าวหุ้น
โดย guitar66 ส 15 มี.ค. 2025 5:32 pm บอร์ด ThaiVIBOT - Developer
2
4
ส 15 มี.ค. 2025 5:53 pm โดย guitar66 View Topic R - selenium_thaivi_set_bot - bot เก็บข้อมูลข่าวหุ้น
R - selenium_thaivi_bot - bot เก็บข้อมูล
โดย guitar66 ศ 14 มี.ค. 2025 7:17 pm บอร์ด ThaiVIBOT - Developer
3
7
ศ 14 มี.ค. 2025 8:02 pm โดย mindphp View Topic R - selenium_thaivi_bot - bot เก็บข้อมูล
R - โหลดไฟล์ที่มีขนาดใหญ่
โดย MBMoo ศ 14 มี.ค. 2025 4:16 pm บอร์ด MDERPv2 - Tester
3
5
ศ 14 มี.ค. 2025 4:50 pm โดย MBMoo View Topic R - โหลดไฟล์ที่มีขนาดใหญ่