क्या पायथन में "फ्रोजन डिक्ट" संभव है?
"फ्रोजन डिक्ट" की अवधारणा चर्चा का विषय रही है पायथन समुदाय. जबकि पायथन एक अंतर्निहित फ्रोजनडिक्ट प्रदान नहीं करता है, एक अपरिवर्तनीय, धोने योग्य शब्दकोश की आवश्यकता को पूरा करने के लिए कई समाधान सामने आए हैं।
फ्रोजन डिक्ट चाहने का एक सामान्य कारण अज्ञात तर्कों के साथ फ़ंक्शन कॉल को याद रखना है। एक विशिष्ट दृष्टिकोण में हैश टेबल लुकअप के लिए सॉर्टिंग स्थिरता पर भरोसा करते हुए, टुपल (सॉर्टेड (kwargs.items ())) का उपयोग करके तर्कों को टुपल में परिवर्तित करना शामिल है।
अधिक व्यापक दृष्टिकोण के लिए, निम्नलिखित फ्रोज़नडिक्ट क्लास पर विचार करें:
import collections
class FrozenDict(collections.Mapping):
...
यह वर्ग पुनरावृत्ति, लंबाई निर्धारण, आइटम पुनर्प्राप्ति और हैश गणना के लिए तरीके प्रदान करता है, यह सुनिश्चित करता है कि यह एक मानक शब्दकोश की तरह व्यवहार करता है और हैशिंग का समर्थन करता है।
व्यवहार में, फ्रोज़नडिक्ट कुशलता से संचालित होता है :
x = FrozenDict(a=1, b=2)
y = FrozenDict(a=1, b=2)
print(x is y, x == y, x == {'a': 1, 'b': 2})
d = {x: 'foo'}
print(d[y]) # 'foo'
एक कस्टम कार्यान्वयन प्रदान करके, फ्रोज़नडिक्ट पायथन में अपरिवर्तनीय, धोने योग्य शब्दकोशों की अनुमति देता है, ऑब्जेक्ट हैंडलिंग और मेमोरी ऑप्टिमाइज़ेशन की संभावनाओं को बढ़ाता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3