ใน Python ลิสต์ (list) จะเก็บชุดของค่า ในขณะที่พจนานุกรม (dictionary) จะเก็บคู่ของค่าที่เรียกว่า key-value pairs บทความนี้จะสาธิตวิธีนำสองลิสต์มารวมกันเพื่อสร้างพจนานุกรมใน Python
วิธีที่ 1: ใช้ลูป for และเมธอด remove()
สร้างลูป for ซ้อนกันสองชั้น ในลูปในจะกำหนดลิสต์หนึ่งเป็น key ของพจนานุกรม และลบค่าออกจากลิสต์ที่อยู่ในลูปนอก
ตัวอย่าง
listK = ["Mon", "Tue", "Wed"]
listV = [3, 6, 5]
# ลิสต์ที่กำหนด
print("List of K : ", listK)
print("List of V : ", listV)
# พจนานุกรมว่าง
res = {}
# แปลงเป็นพจนานุกรม
for key in listK:
for value in listV:
res[key] = value
listV.remove(value)
break
print("Dictionary from lists:\n", res)
ผลลัพธ์
('List of K : ', ['Mon', 'Tue', 'Wed'])
('List of V : ', [3, 6, 5])
('Dictionary from lists:\n ', {'Wed': 5, 'Mon': 3, 'Tue': 6})
วิธีที่ 2: ใช้ลูป for และ range()
นำสองลิสต์มารวมกันเพื่อสร้างคู่ค่าโดยใช้ลูป for พร้อมกับฟังก์ชัน range() และ len() เพื่อติดตามจำนวนสมาชิกจนกว่าจะสร้าง key-value pairs ครบทุกคู่
ตัวอย่าง
listK = ["Mon", "Tue", "Wed"]
listV = [3, 6, 5]
# ลิสต์ที่กำหนด
print("List of K : ", listK)
print("List of V : ", listV)
# แปลงเป็นพจนานุกรม
res = {listK[i]: listV[i] for i in range(len(listK))}
print("Dictionary from lists:\n", res)
ผลลัพธ์
('List of K : ', ['Mon', 'Tue', 'Wed'])
('List of V : ', [3, 6, 5])
('Dictionary from lists:\n ', {'Wed': 5, 'Mon': 3, 'Tue': 6})
วิธีที่ 3: ใช้ฟังก์ชัน zip()
ฟังก์ชัน zip() ทำงานคล้ายวิธีข้างต้น คือ รวมสมาชิกจากสองลิสต์เข้าด้วยกันเพื่อสร้างคู่ key และ value
ตัวอย่าง
listK = ["Mon", "Tue", "Wed"]
listV = [3, 6, 5]
# ลิสต์ที่กำหนด
print("List of K : ", listK)
print("List of V : ", listV)
# แปลงเป็นพจนานุกรม
res = dict(zip(listK, listV))
print("Dictionary from lists:\n", res)
ผลลัพธ์
('List of K : ', ['Mon', 'Tue', 'Wed'])
('List of V : ', [3, 6, 5])
('Dictionary from lists:\n ', {'Wed': 5, 'Mon': 3, 'Tue': 6})