Keys are not unique for a python dictionary! -
यहाँ एक बेवकूफ नौसिखिया सवाल एक अजगर शब्दकोश q यह हो सकता है अगर आप जब किसी ऑब्जेक्ट को (यह नहीं इसका अर्थ है कि एक हैश मान है अन्य गुण हो सकता है परिवर्तन, जब तक कि ये प्रभावित नहीं करते। इसे कभी भी बदलने की अनुमति नहीं होती है। यह एक सामान्य ग़लतफ़हमी है। हैश का मान खुद बदल सकता है। यह केवल निम्न कोड एक वस्तु के लिए एक वस्तु जोड़ता है, फिर उसके हश को तेंदुए के नीचे से बदलता है लेनन (सेट (q.keys ()) के लिए! = लेन (q.keys ()) । क्या यह भी संभव है?
dict की आवश्यकता का उल्लंघन करते हैं, और इसे बदल सकते हैं हैश।
dict में उपयोग किया जाता है, तो इसके हैश मान में परिवर्तन नहीं होना चाहिए, और अन्य वस्तुओं के समानता में कोई परिवर्तन नहीं होना चाहिए।
dict है, जिसके लिए वह कुंजी हैश अपरिवर्तनीय है, न ही
__ हैश __ है।)
q [a] = 2 फिर
a को डिक् में एक नई कुंजी के रूप में जोड़ता है, भले ही यह पहले से मौजूद है; चूंकि हैश मान बदल गया है, डिक्ट पुराने मूल्य को नहीं मिल रहा है। यह आपके द्वारा देखी गई ख़ासियत को दोहराता है।
वर्ग टेस्ट (ऑब्जेक्ट): def __init __ (आत्म, ज): आत्म = h def = __ हश __ (स्व): वापसी self.ha = test (1 ) Q = {} q [a] = 1 ah = 2 q [a] = 2 प्रिंट q # सत्य: प्रिंट लेना (सेट (q.keys ())) = len (q.keys ())
Comments
Post a Comment