परिवर्तनशील डिफ़ॉल्ट आर्गुमेंट्स को सुधारना
Python में, यदि आप किसी फ़ंक्शन में डिफ़ॉल्ट आर्गुमेंट के रूप में सूची जैसी परिवर्तनशील वस्तुओं का उपयोग करते हैं, तो यह अप्रत्याशित व्यवहार का कारण बन सकता है। ऐसा इसलिए होता है क्योंकि फ़ंक्शन आर्गुमेंट का डिफ़ॉल्ट मूल्य केवल एक बार, जब फ़ंक्शन परिभाषित किया जाता है, तभी मूल्यांकित होता है। नतीजतन, परिवर्तनशील डिफ़ॉल्ट आर्गुमेंट सभी फ़ंक्शन कॉल्स के बीच साझा होता है।
इस समस्या से निपटने के लिए, फ़ंक्शन को संशोधित करना चाहिए ताकि सूची आर्गुमेंट के लिए डिफ़ॉल्ट मान
None
हो, और फिर फ़ंक्शन के अंदर यदि यह आर्गुमेंट None
है, तो एक खाली सूची प्रारंभ की जाए।आपको पिछले अभ्यास में परिभाषित
mutable_default_argument
फ़ंक्शन को संशोधित करना है। यह फ़ंक्शन दो पैरामीटर लेगा: एक पूर्णांक n
और एक सूची lst
, जिसका डिफ़ॉल्ट मान None
है।फ़ंक्शन को जांचना चाहिए कि यदि
lst
None
है, तो उसे एक खाली सूची के रूप में प्रारंभ करें। फिर पूर्णांक n
को lst
में जोडें और lst
को वापस करें।इनपुट की पहली पंक्ति में एक एकल पूर्णांक
m
है, जो दर्शाता है कि फ़ंक्शन कितनी बार कॉल किया जाएगा। उसके बाद की अगली m
पंक्तियों में प्रत्येक में एक एकल पूर्णांक n
है, जिसे सूची में जोड़ा जाएगा।आउटपुट में
m
पंक्तियां होनी चाहिए। प्रत्येक पंक्ति एक सूची होगी, जो प्रत्येक फ़ंक्शन कॉल के बाद lst
की स्थिति को दर्शाती है।इनपुट | आउटपुट |
3
1
2
3 | [1]
[2]
[3] |
नोट: ध्यान दें कि, पिछले अभ्यास के विपरीत, यहाँ सूची
lst
फ़ंक्शन कॉल्स के बीच साझा नहीं हो रही है। प्रत्येक फ़ंक्शन कॉल में एक एकल तत्व वाली सूची बनती है, जो उस विशेष कॉल में जोड़ी गई संख्या के अनुरूप है। यह अपेक्षित व्यवहार है और परिवर्तनशील डिफ़ॉल्ट आर्गुमेंट्स के उपयोग से बचकर इसे प्राप्त किया गया है।Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB