"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > आप सूची मानों के साथ किसी शब्दकोश को कैसे उलट सकते हैं?

आप सूची मानों के साथ किसी शब्दकोश को कैसे उलट सकते हैं?

2024-11-07 को प्रकाशित
ब्राउज़ करें:875

How Can You Invert a Dictionary with List Values?

सूची मानों के साथ शब्दकोशों को उलटना: एक समाधान

इस लेख में, हम सूची मूल्यों के साथ एक शब्दकोश को उलटने की चुनौती का पता लगाते हैं। एक इंडेक्स डिक्शनरी को देखते हुए जहां कुंजी फ़ाइल नाम हैं और मान उन फ़ाइलों में दिखाई देने वाले शब्दों की सूची हैं, हमारा लक्ष्य एक उलटा शब्दकोश बनाना है जहां शब्द कुंजी हैं और मान फ़ाइल नामों की सूची हैं।

प्रदान किया गया व्युत्क्रम फ़ंक्शन, invert_dict, कुंजी के रूप में सूची मान वाले शब्दकोशों पर लागू नहीं है, क्योंकि यह "टाइप एरर: अनहैशेबल टाइप: 'लिस्ट'" के साथ विफल हो जाता है। यह सीमा इस तथ्य से उत्पन्न होती है कि शब्दकोशों में कुंजियाँ धोने योग्य होनी चाहिए, और सूचियाँ धोने योग्य नहीं हैं।

इस बाधा को दूर करने के लिए, हम एक कस्टम दृष्टिकोण का उपयोग कर सकते हैं जो मूल शब्दकोश के माध्यम से पुनरावृत्त होता है और सेटडिफॉल्ट का उपयोग करके एक नया शब्दकोश बनाता है . विशेष रूप से, हम मूल शब्दकोश में प्रत्येक कुंजी के मूल्य सूचियों के माध्यम से पुनरावृत्ति करते हैं और नए उल्टे शब्दकोश में उन शब्दों के लिए मूल्यों के रूप में संबंधित कुंजी जोड़ते हैं।

यहां इस दृष्टिकोण का एक उदाहरण कार्यान्वयन है:

inverse = {}
for k,v in index.items():
    for x in v:
        inverse.setdefault(x, []).append(k)

यह समाधान एक नई सूची बनाने के लिए सेटडिफॉल्ट विधि का उपयोग करके मूल शब्दकोश में सूची मानों को संभालता है यदि कुंजी उल्टे शब्दकोश में मौजूद नहीं है, या यदि कुंजी पहले से मौजूद है तो मौजूदा सूची में जोड़ें।

परिणामस्वरूप, हमें एक उलटा शब्दकोश प्राप्त होता है जहां शब्द कुंजी हैं और मान फ़ाइल नामों की सूचियां हैं।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3