Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python - สร้าง Dictionary จาก List โดยกำหนดค่าเป็น None

สมมติว่าคุณมี List และต้องการแปลงเป็น Dictionary ซึ่งแต่ละคีย์จะมีค่าเป็น None เป็นตัวแทนสำรอง (placeholder) โครงสร้าง Dictionary ประกอบด้วยคู่คีย์-ค่า (key-value pair) โดยในที่นี้เราจะใช้ None เป็นค่าสำหรับทุกคีย์

ใช้คอนสตรัคเตอร์ dict.fromkeys()

คอนสตรัคเตอร์ dict() สร้าง Dictionary ใน Python โดยเมธอด fromkeys() ใช้สร้างองค์ประกอบของ Dictionary โดยนำสมาชิกของ List มาเป็นคีย์และกำหนดค่าเป็น None อัตโนมัติ

ตัวอย่าง

listA = ["Mon", "Tue", "Wed", "Thu", "Fri"]
print("List ที่กำหนด: \n", listA)
res = dict.fromkeys(listA)  # สร้าง Dictionary ใหม่
print("Dictionary ที่ได้:\n", res)

ผลลัพธ์

การรันโค้ดข้างต้นจะได้ผลดังนี้ −

List ที่กำหนด: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
Dictionary ที่ได้: {'Mon': None, 'Tue': None, 'Wed': None, 'Thu': None, 'Fri': None}

ใช้ zip และ dict

เรายังสามารถใช้คอนสตรัคเตอร์ dict ร่วมกับเมธอด zip() เพื่อแปลงแต่ละสมาชิกเป็นคู่คีย์-ค่า

ตัวอย่าง

listA = ["Mon", "Tue", "Wed", "Thu", "Fri"]
print("List ที่กำหนด: \n", listA)
res = dict(zip(listA, [None]*len(listA)))  # สร้าง Dictionary ใหม่
print("Dictionary ที่ได้:\n", res)

ผลลัพธ์

การรันโค้ดข้างต้นจะได้ผลดังนี้ −

List ที่กำหนด: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
Dictionary ที่ได้: {'Mon': None, 'Tue': None, 'Wed': None, 'Thu': None, 'Fri': None}

ใช้ Dictionary Comprehension

สร้างลูป for เพื่อวนลูปผ่านแต่ละสมาชิกของ List และกำหนด None เป็นค่าสำหรับแต่ละคีย์

ตัวอย่าง

listA = ["Mon", "Tue", "Wed", "Thu", "Fri"]
print("List ที่กำหนด: \n", listA)
res = {key: None for key in listA}  # สร้าง Dictionary ใหม่
print("Dictionary ที่ได้:\n", res)

ผลลัพธ์

การรันโค้ดข้างต้นจะได้ผลดังนี้ −

List ที่กำหนด: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
Dictionary ที่ได้: {'Mon': None, 'Tue': None, 'Wed': None, 'Thu': None, 'Fri': None}