ในขณะที่จัดการกับพจนานุกรม เราอาจเจอสถานการณ์เมื่อมีค่าที่ซ้ำกันในพจนานุกรมในขณะที่คีย์ยังคงไม่ซ้ำกันอย่างชัดเจน ในบทความนี้เราจะมาดูกันว่าเราจะบรรลุเป้าหมายนี้ได้อย่างไร
การแลกเปลี่ยนคีย์และค่า
เราแลกเปลี่ยนคีย์กับค่าของพจนานุกรมแล้วต่อท้ายค่าที่เกี่ยวข้องกับคีย์ที่กำหนด วิธีนี้จะทำให้ค่าที่ซ้ำกันถูกรวมเข้าด้วยกันและเราจะเห็นค่าเหล่านี้ในพจนานุกรมใหม่ที่เป็นผลลัพธ์
ตัวอย่าง
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'}]