ดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

     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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ทริป กางเต็นท์ ใกล้กรุงเทพ
โดย milk2533 จ 23 พ.ย. 2020 1:04 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
12
จ 23 พ.ย. 2020 1:04 pm โดย milk2533
- ให้เขียนประวัติ และ Job description ที่เคยทำมาแต่ละบริษัท โดยระบุประเภทธุรกิจที่เคยทำมา
โดย milk2533 จ 23 พ.ย. 2020 11:26 am บอร์ด M115 - กฤตวรรณ อาทิตย์ตั้ง
1
13
จ 23 พ.ย. 2020 4:34 pm โดย milk2533
list ความรู้ที่มี ว่าเคยเรียน หรือ เคยทำอะไรมาบ้าง
โดย milk2533 จ 23 พ.ย. 2020 11:26 am บอร์ด M115 - กฤตวรรณ อาทิตย์ตั้ง
3
22
จ 23 พ.ย. 2020 7:03 pm โดย milk2533
Work's on Hand กฤตวรรณ อาทิตย์ตั้ง M115
โดย milk2533 จ 23 พ.ย. 2020 11:24 am บอร์ด M115 - กฤตวรรณ อาทิตย์ตั้ง
0
3
จ 23 พ.ย. 2020 11:24 am โดย milk2533
note ส่วนตัว
โดย milk2533 จ 23 พ.ย. 2020 11:23 am บอร์ด M115 - กฤตวรรณ อาทิตย์ตั้ง
0
1
จ 23 พ.ย. 2020 11:23 am โดย milk2533
งานประจำวันที่ 23 พฤศจิกายน 2563
โดย milk2533 จ 23 พ.ย. 2020 11:21 am บอร์ด M115 - กฤตวรรณ อาทิตย์ตั้ง
2
28
จ 23 พ.ย. 2020 7:08 pm โดย milk2533
คำสั่งค้นหาไฟล์ จากขนาดของไฟล์
โดย mindphp จ 23 พ.ย. 2020 12:07 am บอร์ด Linux - Web Server
0
7
จ 23 พ.ย. 2020 12:07 am โดย mindphp
แก้ป้ญหา ภาษาไทย Error ใน Flask template ninja2 Error UnicodeDecodeError UnicodeDecodeError: 'ascii' codec can't decode
โดย mindphp ส 21 พ.ย. 2020 10:38 pm บอร์ด Python Knowledge
1
17
จ 23 พ.ย. 2020 12:22 pm โดย samay123