विषय पर यहाँ पर कई सवाल के रूप में प्रमाणित की उप-समूह की खुद dict दृश्य बनाने के ले जा रहा एक शब्दकोश का एक टुकड़ा एक बहुत आम कार्य है, एक काफी अच्छा समाधान के साथ:अजगर, शब्दकोश
{k:v for k,v in dict.viewitems() if some_test(k,v)}
लेकिन जो अपने स्वयं के मैपिंग के साथ एक नया शब्दकोश बनाता है। कई परिचालनों के लिए, मूल ताना का अपरिवर्तनीय दृश्य होना अच्छा होगा (यानी यह दृश्य पर असाइनमेंट या हटाना संचालन का समर्थन नहीं करता है)। इस तरह के एक प्रकार को लागू करना शायद आसान है, लेकिन स्थानीय उपयोगिता वर्गों का प्रसार करना अच्छा नहीं है।
तो, मेरा प्रश्न है: क्या ऐसा "सबसेट व्यू" प्राप्त करने का एक अंतर्निहित तरीका है? या क्या कोई तीसरी पार्टी लाइब्रेरी है (अधिमानतः पीईपीआई के माध्यम से उपलब्ध है) जो ऐसी उपयोगिता का अच्छा कार्यान्वयन प्रदान करती है?
मैं सुझाव दूंगा कि एक शब्दकोश पर एक "अपरिवर्तनीय दृश्य" बिल्कुल आपके उदाहरण कोड के साथ मिलता है ... क्योंकि अनुपस्थिति शब्दकोश की एक अलग प्रति बना रही है, मुझे यकीन नहीं है कि आप कैसे बना रहे हैं "अपरिवर्तनीय" भाग का काम। – larsks
@larsks: यह असाइनमेंट का समर्थन नहीं कर सकता है। – Marcin
@larsks: मुझे लगता है कि "अपरिवर्तनीय दृश्य" द्वारा ओपी का अर्थ है कि व्यू ऑब्जेक्ट के पास शब्दकोश को म्यूट करने के लिए कोई तरीका नहीं है (जैसे पॉप), और लिपटे निर्देश में कोई भी परिवर्तन तुरंत दृश्य में दिखाई देता है। बेशक, यह "गहरी" भावना में अपरिवर्तनीय नहीं है - यानी, यदि आप my_view [some_key] .append (12) करते हैं, तो निश्चित रूप से 12 के अनुरूप मान संशोधित किया जाएगा। –