目次
1. แอสโซซิเอทีฟอาเรย์ (พจนานุกรม) ใน Python คืออะไร?
แอสโซซิเอทีฟอาเรย์ของ Python เป็นโครงสร้างข้อมูลที่ใช้คู่คีย์-ค่าเพื่อจัดการข้อมูล โดยทั่วไปสิ่งที่เรียกว่า “แอสโซซิเอทีฟอาเรย์” ใน Python มีให้ใช้งานเป็นชนิดdict
ตัวอย่างเช่น ใช้ชื่อเป็นคีย์ และเก็บอายุหรืออาชีพเป็นค่า จะช่วยให้การค้นหาและการจัดการข้อมูลทำได้อย่างมีประสิทธิภาพ
ที่นี่ “คีย์” คือ ตัวระบุเฉพาะเพื่อระบุข้อมูล และแต่ละคีย์ต้องไม่ซ้ำกันความแตกต่างระหว่างชนิดพจนานุกรมกับโครงสร้างข้อมูลอื่นๆ
จุดเด่นของชนิดพจนานุกรมคือการค้นหาที่รวดเร็วด้วยคีย์ เมื่อเทียบกับชนิดลำดับอย่างลิสต์หรือทูเพิลใน Python แทนที่จะค้นหาทีละองค์ประกอบตามลำดับ สามารถเข้าถึงด้วยคีย์โดยตรง ทำให้ความเร็วในการค้นหาดีขึ้นอย่างมาก โดยเฉพาะเมื่อจัดการข้อมูลจำนวนมากหรือมีการค้นหาบ่อยๆ ชนิดพจนานุกรมมีประโยชน์อย่างยิ่ง# ตัวอย่างของชนิดพจนานุกรม
person = {
"ชื่อ": "ทานากะ",
"อายุ": 30,
"อาชีพ": "วิศวกร"
}
print(person["ชื่อ"]) # ผลลัพธ์: ทานากะ
2. วิธีสร้างดิกชันนารีใน Python
ใน Python เราสามารถสร้างดิกชันนารีได้หลายวิธี สามารถเลือกวิธีที่เหมาะสมตามสถานการณ์ เช่น การเขียนแบบลิเทอรัล、dict()
ฟังก์ชัน、zip()
ฟังก์ชันวิธีสร้างด้วยลิเทอรัล
การเขียนแบบลิเทอรัลคือวิธีที่ใช้วงเล็บปีกกา{}
ในการสร้าง ซึ่งเป็นวิธีที่พบได้บ่อยและเรียบง่ายที่สุด
เมื่อใช้ลิเทอรัล คุณสามารถกำหนดคีย์และค่าได้ในบรรทัดเดียว และสร้างดิกชันนารีได้อย่างเข้าใจง่าย# การเขียนแบบลิเทอรัล
fruit_prices = {
"แอปเปิล": 100,
"กล้วย": 150,
"ส้ม": 200
}
dict()
ฟังก์ชันที่ใช้ในการสร้าง
dict()
ฟังก์ชัน มีประโยชน์เมื่อสร้างดิกชันนารีจากลิสต์ของทูเพิล เป็นต้น
วิธีนี้ใช้งานได้สะดวกเป็นพิเศษเมื่อข้อมูลมีการเปลี่ยนแปลงแบบไดนามิก# ฟังก์ชัน dict
fruit_prices = dict([("แอปเปิล", 100), ("กล้วย", 150), ("ส้ม", 200)])
zip()
ฟังก์ชันที่ใช้ในการสร้าง
เมื่อสร้างดิกชันนารีโดยจับคู่ลิสต์ต่างๆ ให้เป็นคีย์และค่า สามารถใช้ฟังก์ชัน zip()
เพื่อทำได้อย่างกระชับ
วิธีนี้ช่วยให้สร้างดิกชันนารีจากลิสต์ที่สอดคล้องกันได้อย่างมีประสิทธิภาพ# ฟังก์ชัน zip
keys = ["แอปเปิล", "กล้วย", "ส้ม"]
values = [100, 150, 200]
fruit_prices = dict(zip(keys, values))
3. การดำเนินการพื้นฐานกับดิกชันนารี
ดิกชันนารีของ Python เป็นโครงสร้างข้อมูลแบบมิวเทเบิลที่ช่วยให้เพิ่ม อัปเดต และลบข้อมูลได้อย่างยืดหยุ่น。 นอกจากนี้ เมื่อเทียบกับโครงสร้างข้อมูลอื่น ๆ แล้ว ดิกชันนารีมีจุดเด่นคือค้นหาได้รวดเร็ว。การเพิ่มและอัปเดตรายการ
ในการเพิ่มหรืออัปเดตรายการในดิกชันนารี เพียงระบุคีย์แล้วกำหนดค่าให้ก็เพียงพอ。 หากกำหนดค่าให้กับคีย์ที่มีอยู่จะเป็นการอัปเดต และหากระบุคีย์ใหม่จะเป็นการเพิ่มรายการใหม่。fruit_prices = {"แอปเปิล": 100, "กล้วย": 150}
# การเพิ่มรายการใหม่
fruit_prices["ส้ม"] = 200
# การอัปเดตรายการที่มีอยู่
fruit_prices["แอปเปิล"] = 120
การลบรายการ
เมื่อต้องการลบรายการที่มีคีย์ที่กำหนด สามารถใช้คำสั่งdel
หรือเมธอด pop()
ได้。
เมธอด pop()
จะคืนค่าที่ถูกลบ จึงมีประโยชน์หากต้องการเก็บค่าที่ลบไว้。# การลบโดยใช้คำสั่ง del
del fruit_prices["กล้วย"]
# การลบโดยใช้เมธอด pop (สามารถรับค่าที่ลบได้)
removed_price = fruit_prices.pop("ส้ม")
4. การใช้งานขั้นสูง
การใช้งานดิกชันนารีในเชิงประยุกต์ เช่น การรวมกับดิกชันนารีอื่นและการนับความถี่ ซึ่งทำให้สามารถจัดการข้อมูลในระดับที่ซับซ้อนยิ่งขึ้นได้การรวมดิกชันนารี
เมื่อจะรวมดิกชันนารีหลายตัวให้เป็นหนึ่งเดียว เมธอดupdate()
จะมีประโยชน์
หากมีคีย์ซ้ำ ค่าจะถูกเขียนทับ จึงสามารถทำการผสานหรืออัปเดตข้อมูลได้ในคราวเดียวdict1 = {"แอปเปิล": 100, "กล้วย": 150}
dict2 = {"กล้วย": 200, "องุ่น": 300}
dict1.update(dict2)
# ผลลัพธ์: {'แอปเปิล': 100, 'กล้วย': 200, 'องุ่น': 300}
การประยุกต์ใช้สำหรับการนับความถี่
การนับความถี่มีประโยชน์ เช่น ในการนับจำนวนครั้งที่อักขระปรากฏในสตริง เมื่อใช้ชนิดดิกชันนารี จะสามารถรวบรวมและวิเคราะห์ข้อมูลได้อย่างมีประสิทธิภาพtext = "apple"
frequency = {}
for char in text:
if char in frequency:
frequency[char] += 1
else:
frequency[char] = 1
# ผลลัพธ์: {'a': 1, 'p': 2, 'l': 1, 'e': 1}

5. การวนลูปกับพจนานุกรม
หากต้องการประมวลผลองค์ประกอบทั้งหมดของพจนานุกรมในครั้งเดียว การวนลูปเหมาะสม ด้วยวิธีนี้ คุณสามารถจัดการคีย์หรือค่าแยกกัน หรือดึงรายการข้อมูลได้ดึงคีย์และค่าด้วยการวนลูป
ในการประมวลผลคีย์ ค่า หรือคู่คีย์-ค่าภายในพจนานุกรม ให้ใช้เมธอดkeys()
, values()
, items()
fruit_prices = {"แอปเปิล": 100, "กล้วย": 150, "ส้ม": 200}
# เฉพาะคีย์
for key in fruit_prices.keys():
print(key)
# เฉพาะค่า
for value in fruit_prices.values():
print(value)
# คู่คีย์และค่า
for key, value in fruit_prices.items():
print(f"ราคาของ {key} คือ {value} เยน")