शब्दकोशों के साथ काम करते समय, हम ऐसी स्थिति में आ सकते हैं जब शब्दकोश में डुप्लिकेट मान होते हैं जबकि स्पष्ट रूप से कुंजियाँ अद्वितीय रहती हैं। इस लेख में हम देखेंगे कि हम इसे कैसे प्राप्त कर सकते हैं।
कुंजी और मूल्यों का आदान-प्रदान
हम शब्दकोशों के मूल्यों के साथ कुंजियों का आदान-प्रदान करते हैं और फिर दी गई कुंजी से जुड़े मूल्यों को जोड़ते रहते हैं। इस तरह से डुप्लीकेट मान एक हो जाते हैं और हम उन्हें परिणामी नए शब्दकोश में देख सकते हैं।
उदाहरण
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']} सेट के साथ
हम यहां एक समान दृष्टिकोण का पालन करते हैं। यहां भी हम मौजूदा शब्दकोश से सेट फ़ंक्शन का उपयोग करके और डुप्लिकेट मानों के साथ कुंजियों को जोड़कर एक नया शब्दकोश बनाते हैं। अंत में हम उन मानों को फ़िल्टर करते हैं जहां लंबाई 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'}]