मैं बस कुछ ऐसी चीज में आया जो काफी अजीब था।पाइथन टुपल के भीतर किसी सूची का + = टाइप टाइपर क्यों बढ़ाता है लेकिन सूची को संशोधित करता है?
>>> t = ([],)
>>> t[0].append('hello')
>>> t
(['hello'],)
>>> t[0] += ['world']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> t
(['hello', 'world'],)
ऐसा क्यों है TypeError
बढ़ा है और अभी तक list
tuple
अंदर बदलते हैं?
मुझे लगता है कि आपको देखना होगा कि '+ = वास्तव में कैसे लागू किया गया है। ऐसा लगता है कि यह वास्तव में एक नई सूची नहीं बनाता है, यह सूची में जगह बदलता है, यह '+' भाग है। फिर आपके पास असाइनमेंट है, लेकिन चूंकि टुपल्स अपरिवर्तनीय हैं, इसलिए इसकी अनुमति नहीं है। –
@ फ़ेलिक्सक्लिंग + = संलग्न करने के समान काम करता है(), यानी सूची का आईडी() समान रहता है। –
यह भी ध्यान रखें कि हैश को टुपल करने में सक्षम होने के लिए, इसके सभी घटक भाग भी हर्षनीय होना चाहिए। – mgilson