ในขณะที่จัดการกับพจนานุกรม เราอาจเจอสถานการณ์เมื่อมีค่าที่ซ้ำกันในพจนานุกรมในขณะที่คีย์ยังคงไม่ซ้ำกันอย่างชัดเจน ในบทความนี้เราจะมาดูกันว่าเราจะบรรลุเป้าหมายนี้ได้อย่างไร
การแลกเปลี่ยนคีย์และค่า
เราแลกเปลี่ยนคีย์กับค่าของพจนานุกรมแล้วต่อท้ายค่าที่เกี่ยวข้องกับคีย์ที่กำหนด วิธีนี้จะทำให้ค่าที่ซ้ำกันถูกรวมเข้าด้วยกันและเราจะเห็นค่าเหล่านี้ในพจนานุกรมใหม่ที่เป็นผลลัพธ์
ตัวอย่าง
dictA = {'Sun': 5, 'Mon': 3, 'Tue': 5, 'Wed': 3}
print("Given Dictionary :", dictA)
k_v_exchanged = {}
for key, value in dictA.items():
if value not in k_v_exchanged:
k_v_exchanged[value] = [key]
else:
k_v_exchanged[value].append(key)
# Result
print("New Dictionary:", k_v_exchanged) ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Given Dictionary : {'Sun': 5, 'Mon': 3, 'Tue': 5, 'Wed': 3}
New Dictionary: {5: ['Sun', 'Tue'], 3: ['Mon', 'Wed']} พร้อมชุด
เราปฏิบัติตามแนวทางที่คล้ายกันที่นี่ ที่นี่เรายังสร้างพจนานุกรมใหม่จากพจนานุกรมที่มีอยู่โดยใช้ฟังก์ชัน set และเพิ่มคีย์ด้วยค่าที่ซ้ำกัน สุดท้าย เรากรองค่าที่ความยาวมากกว่า 1 และทำเครื่องหมายว่าซ้ำกัน
ตัวอย่าง
dictA = {'Sun': 5, 'Mon': 3, 'Tue': 5, 'Wed': 4}
print("Given Dictionary :", dictA)
dictB = {}
for key, value in dictA.items():
dictB.setdefault(value, set()).add(key)
res = filter(lambda x: len(x) >1, dictB.values())
# Result
print("New Dictionary:",list(res)) ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Given Dictionary : {'Sun': 5, 'Mon': 3, 'Tue': 5, 'Wed': 4}
New Dictionary: [{'Tue', 'Sun'}]