บางครั้งในพจนานุกรม Python เราอาจต้องกรองคีย์บางตัวออกไปตามเกณฑ์บางอย่าง ในบทความนี้เราจะดูวิธีกรองคีย์ออกจากพจนานุกรม Python
ด้วย for และ in
ในวิธีนี้เราใส่ค่าของคีย์ที่ต้องการกรองในลิสต์ แล้ววนลูปผ่านแต่ละองค์ประกอบของลิสต์และตรวจสอบความมีอยู่ในพจนานุกรมที่กำหนด เราสร้างพจนานุกรมผลลัพธ์ที่มีค่าเหล่านี้ซึ่งพบในพจนานุกรม
ตัวอย่าง
dictA = {'Mon':'Phy','Tue':'chem','Wed':'Math','Thu':'Bio'}
key_list = ['Tue','Thu']
print("Given Dictionary:\n", dictA)
print("Keys for filter:\n", key_list)
res = [dictA[i] for i in key_list if i in dictA]
print("Dictionary with filtered keys:\n", res)
Output
การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ -
Given Dictionary: {'Mon': 'Phy', 'Tue': 'chem', 'Wed': 'Math', 'Thu': 'Bio'}
Keys for filter: ['Tue', 'Thu']
Dictionary with filtered keys: ['chem', 'Bio']
ด้วย intersection
เราใช้ intersection เพื่อหาองค์ประกอบร่วมระหว่างพจนานุกรมที่กำหนดและลิสต์ จากนั้นใช้ฟังก์ชัน set เพื่อได้องค์ประกอบที่ไม่ซ้ำกันและแปลงผลลัพธ์เป็นลิสต์
ตัวอย่าง
dictA = {'Mon':'Phy','Tue':'chem','Wed':'Math','Thu':'Bio'}
key_list = ['Tue','Thu']
print("Given Dictionary:\n", dictA)
print("Keys for filter:\n", key_list)
temp = list(set(key_list).intersection(dictA))
res = [dictA[i] for i in temp]
print("Dictionary with filtered keys:\n", res)
Output
การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ -
Given Dictionary: {'Mon': 'Phy', 'Tue': 'chem', 'Wed': 'Math', 'Thu': 'Bio'}
Keys for filter: ['Tue', 'Thu']
Dictionary with filtered keys: ['chem', 'Bio']