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

ค้นหาคีย์ที่มีค่าซ้ำกันในพจนานุกรมใน Python


ในขณะที่จัดการกับพจนานุกรม เราอาจเจอสถานการณ์เมื่อมีค่าที่ซ้ำกันในพจนานุกรมในขณะที่คีย์ยังคงไม่ซ้ำกันอย่างชัดเจน ในบทความนี้เราจะมาดูกันว่าเราจะบรรลุเป้าหมายนี้ได้อย่างไร

การแลกเปลี่ยนคีย์และค่า

เราแลกเปลี่ยนคีย์กับค่าของพจนานุกรมแล้วต่อท้ายค่าที่เกี่ยวข้องกับคีย์ที่กำหนด วิธีนี้จะทำให้ค่าที่ซ้ำกันถูกรวมเข้าด้วยกันและเราจะเห็นค่าเหล่านี้ในพจนานุกรมใหม่ที่เป็นผลลัพธ์

ตัวอย่าง

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'}]