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

ดึงคีย์เฉพาะจาก Dictionary ใน Python


ปัญหา

ให้ Dictionary dictA ต้องการสร้าง Dictionary ใหม่ที่มีเฉพาะคีย์ที่ต้องการ

วิธีที่ 1: Dictionary Comprehension (แนะนำ)

dictA = {'Sun': '2 PM', 'Tue': '5 PM', 'Wed': '3 PM', 'Fri': '9 PM'}
wanted = {'Fri', 'Sun'}
result = {k: dictA[k] for k in wanted if k in dictA}
print(result)  # {'Fri': '9 PM', 'Sun': '2 PM'}

วิธีที่ 2: ใช้ dict() กับ generator

wanted = ['Fri', 'Wed']
result = dict((k, dictA[k]) for k in wanted if k in dictA)
print(result)  # {'Fri': '9 PM', 'Wed': '3 PM'}

วิธีที่ 3: ใช้ operator.itemgetter (สำหรับหลายคีย์)

from operator import itemgetter
try:
    result = dict(zip(wanted, itemgetter(*wanted)(dictA)))
except KeyError:
    # จัดการคีย์ที่ไม่มี
    pass

สรุป

Dictionary Comprehension อ่านง่ายและมีประสิทธิภาพดีที่สุดสำหรับกรณีทั่วไป