Dictionaries เก็บข้อมูลในรูปแบบ key-value pairs หมายถึงแต่ละ value ใน dictionary จะเชื่อมโยงกับ key ซึ่งทำหน้าที่เป็นจุดอ้างอิง
หากต้องการดูเนื้อหาของ dictionary บน console มีหลายวิธี สามารถพิมพ์ dictionary ทั้งตัวโดยตรง หรือพิมพ์ key-value pairs ทีละคู่
ในคู่มือนี้ เราจะพูดถึงวิธีพิมพ์ dictionary ใน Python พร้อมตัวอย่างหลายกรณี
Python: พิมพ์ Dictionary ด้วย for Loop
เราจะสร้างโปรแกรมพิมพ์เนื้อหาของ dictionary สำหรับพ่อครัว dictionary นี้เก็บชื่อวัตถุดิบและปริมาณที่ต้องใช้ทำขนมสโคน
สร้าง dictionary สำหรับสูตรอาหาร:
scone = {
"self-raising flour": "350g",
"baking powder": "1 tbsp",
"butter": "85g",
"caster sugar": "3 tbsp",
"milk": "175ml",
"egg": "1 whole"
}
Dictionary นี้มี 6 keys และ values แต่ละ key แทนชื่อวัตถุดิบ แต่ละ value บอกปริมาณที่ต้องใช้ทำสโคนหนึ่งชุด
ต่อมา ใช้ for loop พิมพ์เนื้อหา dictionary โดยใช้ method items():
for key, value in scone.items():
print(value, key)
ลองรันโค้ด:
350g self-raising flour 1 tbsp baking powder 85g butter 3 tbsp caster sugar 175ml milk 1 whole egg
โค้ดทำงานสำเร็จ พิมพ์ keys และ values ทั้งหมด Method items() คืนค่า 2 lists: keys ทั้งหมดและ values ทั้งหมด ทุกครั้งที่วนลูป เราเข้าถึง key-value pair ใหม่
ในรอบแรก "value" คือ "350g" และ "key" คือ "self-raising flour" for loop จะวนจนพิมพ์ทุกคู่
Python: พิมพ์ Dictionary ด้วย json Module
ในตัวอย่างก่อน เราพิมพ์ dictionary ด้วย for loop วิธีนี้เหมาะสำหรับกรณีนั้น เพราะต้องการให้รายการวัตถุดิบอ่านง่ายสำหรับพ่อครัว
json module ช่วยทำงานกับ dictionaries ได้ method json.dumps ทำให้ dictionary อ่านง่ายสำหรับนักพัฒนา เหมาะสำหรับนักพัฒนาที่ต้องการดูค่าใน dictionary บน console
เราจะปรับโปรแกรมก่อนหน้าให้ใช้ json module พิมพ์ dictionary
เริ่มต้น import json module:
import json
กำหนด dictionary เดียวกับตัวอย่างก่อนหน้า:
scone = {
"self-raising flour": "350g",
"baking powder": "1 tbsp",
"butter": "85g",
"caster sugar": "3 tbsp",
"milk": "175ml",
"egg": "1 whole"
}
ใช้ json module พิมพ์ dictionary ใช้ method json.dumps จัดรูปแบบ:
formatted = json.dumps(scone, indent=4) print(formatted)
เราระบุ 2 parameters ตอนเรียก json.dumps(): ชื่อ dictionary ที่ต้องการจัดรูปแบบ และจำนวน spaces ต่อ indent ในตัวอย่าง indent ยาว 4 spaces
ใช้ print() แสดง dictionary ที่จัดรูปแบบแล้ว รันโปรแกรม:
{
"self-raising flour": "350g",
"baking powder": "1 tbsp",
"butter": "85g",
"caster sugar": "3 tbsp",
"milk": "175ml",
"egg": "1 whole"
}
โค้ดแสดงรายการวัตถุดิบ
Python: พิมพ์ Nested Dictionary (Dictionary ซ้อน Dictionary)
"Nested dictionary" หมายถึง "dictionary ใน dictionary"
คุณสามารถพิมพ์ nested dictionary ด้วย json.dumps() และ print() หรือใช้ for loop วิธี for loop คล้ายตัวอย่างก่อน แต่ต้องปรับโค้ดนิดหน่อย
สมมติวัตถุดิบอยู่ใน dictionary ภายใน dictionary:
recipes = {
"scone": {
"self-raising flour": "350g",
"baking powder": "1 tbsp",
"butter": "85g",
"caster sugar": "3 tbsp",
"milk": "175ml",
"egg": "1 whole"
}
}
เพื่อเข้าถึง items ใน "scone" dictionary ต้องอ้างอิง key "scone" ก่อน เพื่อพิมพ์ dictionary ใช้ 2 for loops:
for key, value in recipes.items():
print(key)
for k, v in value.items():
print(k, v)
for loop แรกวนผ่าน "recipes" dictionary for loop ที่สองวนผ่านแต่ละ dictionary ใน "recipes" ลองรันโค้ด:
scone self-raising flour 350g baking powder 1 tbsp butter 85g caster sugar 3 tbsp milk 175ml egg 1 whole
โค้ดทำงานสำเร็จ พิมพ์เนื้อหาของ "recipes" dictionary และ "scone" dictionary
สรุป
คุณสามารถพิมพ์ dictionary ใน Python ได้ทั้งด้วย for loops และ json module วิธี for loop เหมาะหากต้องการแสดงเนื้อหา dictionary บน console ส่วน json module เหมาะสำหรับกรณีใช้งานของนักพัฒนา
ทั้งสองวิธีใช้พิมพ์ nested dictionary ได้เช่นกัน
ตอนนี้คุณพร้อมพิมพ์ dictionary ไปที่ Python console อย่างนักพัฒนาซอฟต์แวร์แล้ว!