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

पायथन में एक कुशल द्विदिशात्मक हैश तालिका कैसे लागू करें?

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

How to Implement an Efficient Bidirectional Hash Table in Python?

एक कुशल द्विदिशीय हैश तालिका को लागू करना

एक द्विदिशात्मक हैश तालिका कुंजी-से-मूल्य और मूल्य-से-कुंजी लुकअप दोनों की अनुमति देती है। जबकि पायथन की अंतर्निहित डेटा संरचना कुंजी-से-मूल्य लुकअप में उत्कृष्टता प्राप्त करती है, यह कुशल मूल्य-से-कुंजी पुनर्प्राप्ति प्रदान नहीं करती है।

द्विदिशात्मक हैश तालिका को लागू करने के लिए एक प्रभावी तरीका एक वर्ग का उपयोग करना है जो मानक निर्देश का विस्तार करता है। बिडिक्ट नाम का यह वर्ग एक व्युत्क्रम निर्देशिका रखता है जो नियमित निर्देश में किसी भी संशोधन के साथ स्वचालित रूप से अपडेट हो जाती है।

कोड कार्यान्वयन:

class bidict(dict):
    def __init__(self, *args, **kwargs):
        super(bidict, self).__init__(*args, **kwargs)
        self.inverse = {}
        for key, value in self.items():
            self.inverse.setdefault(value, []).append(key) 

    def __setitem__(self, key, value):
        if key in self:
            self.inverse[self[key]].remove(key) 
        super(bidict, self).__setitem__(key, value)
        self.inverse.setdefault(value, []).append(key)        

    def __delitem__(self, key):
        self.inverse.setdefault(self[key], []).remove(key)
        if self[key] in self.inverse and not self.inverse[self[key]]: 
            del self.inverse[self[key]]
        super(bidict, self).__delitem__(key)

मुख्य विशेषताएं:

  • व्युत्क्रम निर्देशिका (bd.invers) एक शब्दकोश है जो मूल्यों को मैप करता है उस मान के साथ कुंजियों की एक सूची।
  • उपयोग उदाहरण:

bd = bidict({'a': 1, 'b': 2}) प्रिंट(बीडी) # {'ए': 1, 'बी': 2} प्रिंट(बीडी.इनवर्स) # {1: ['ए'], 2: ['बी']} bd['c'] = 1 # अब दो कुंजियों का मान समान है (= 1) प्रिंट(बीडी) # {'ए': 1, 'सी': 1, 'बी': 2} प्रिंट(बीडी.इनवर्स) # {1: ['ए', 'सी'], 2: ['बी']} डेल बीडी['सी'] प्रिंट(बीडी) # {'ए': 1, 'बी': 2} प्रिंट(बीडी.इनवर्स) # {1: ['ए'], 2: ['बी']} डेल बीडी['ए'] प्रिंट(बीडी) # {'बी': 2} प्रिंट(बीडी.इनवर्स) # {2: ['बी']} बीडी['बी'] = 3 प्रिंट(बीडी) # {'बी': 3} प्रिंट(बीडी.इनवर्स) # {2: [], 3: ['बी']}

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

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

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

Copyright© 2022 湘ICP备2022001581号-3