संभव डुप्लिकेट:
Why are python strings and tuples are made immutable?पायथन में ट्यूपल क्यों परिवर्तनीय नहीं है?
क्या निचले स्तर डिजाइन अजगर में परिवर्तनशील नहीं टपल बनाता है? यह सुविधा उपयोगी क्यों है?
संभव डुप्लिकेट:
Why are python strings and tuples are made immutable?पायथन में ट्यूपल क्यों परिवर्तनीय नहीं है?
क्या निचले स्तर डिजाइन अजगर में परिवर्तनशील नहीं टपल बनाता है? यह सुविधा उपयोगी क्यों है?
कुछ कारण हैं:
__hash__
उनकी सामग्री के आधार पर विधियों को दी गई थीं, तो बदले गए मान बदल सकते हैं क्योंकि सामग्रियों में परिवर्तन होता है, जो हैश मानों के अनुबंध का उल्लंघन करता है।tuple
विधि के माध्यम से अनुक्रम तर्क पारित कर सकते हैं जो आवश्यक होने पर ही प्रतिलिपि बनाएगा।क्योंकि अन्यथा वहां एक अपरिवर्तनीय अनुक्रम प्रकार नहीं होगा! यदि आप एक परिवर्तनीय ट्यूपल चाहते हैं तो आप केवल एक सूची का उपयोग करें।
उचित प्रदर्शन के दौरान अपरिवर्तनीय प्रकारों का उपयोग करते समय, और आप आसानी से dict
को टुपल कुंजियों के साथ आसानी से उपयोग नहीं कर पाएंगे, अगर उन्हें म्यूटेबल बनाया गया हो।
उनके हैश मान बदल सकते हैं? है ना? – wim
wim -> सूची बदलते समय हैश वाउल्स बदलते हैं। यदि सूची में कहीं और रेफरी है तो सूची बदल सकती है। –
सूची unhashable है। – wim