डिक्शनरी से निपटने के दौरान, हम ऐसी स्थिति का सामना कर सकते हैं जब डिक्शनरी में डुप्लिकेट मान हों जबकि कुंजियां स्पष्ट रूप से अद्वितीय रहती हैं। इस लेख में हम देखेंगे कि हम इसे कैसे प्राप्त कर सकते हैं।
कुंजियों और मानों का आदान-प्रदान
हम डिक्शनरी की कुंजियों को मानों के साथ बदलते हैं और फिर किसी दिए गए कुंजी से जुड़े मानों को जोड़ते रहते हैं। इस तरह डुप्लिकेट मान क्लब हो जाते हैं और हम उन्हें परिणामी नई डिक्शनरी में देख सकते हैं।
उदाहरण
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)
# परिणाम
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 के साथ
हम यहां समान दृष्टिकोण का पालन करते हैं। यहां भी हम मौजूदा डिक्शनरी से 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())
# परिणाम
print("New Dictionary:", list(res))
आउटपुट
Given Dictionary : {'Sun': 5, 'Mon': 3, 'Tue': 5, 'Wed': 4}
New Dictionary: [{'Tue', 'Sun'}]