दिलचस्प पोस्ट
कस्टम अलर्ट डाइलाॉग व्यू को कैसे कार्यान्वित करें पृष्ठभूमि-छवि के रूप में सेवा करते समय एसवीजी भरण रंग को संशोधित करें कैसे FTP कैसे फाइल FTP पर मौजूद है FtpWebRequest से पहले स्टार्टअप फ़ॉर्म को बंद करने पर मैं कैसे ऐप को समाप्त करने से रोक सकता हूं? ब्राउज़र कैशे में संग्रहीत jqGrid डेटा? क्या पंक्ति संख्या के साथ एक सरणी को भरना संभव है, जो बिना किसी लूपिंग के विशिष्ट मानदंड से मेल खाता है? क्यों मेरा सीएसएस बंडलिंग एक बिन तैनात MVC4 ऐप के साथ काम नहीं कर रहा है? मैं "बदलाव + एंट" का कैसे पता लगा सकता हूं और टेडटेरा में एक नई लाइन उत्पन्न कर सकता हूं? Boost.Spirit के साथ एक साधारण पार्सर संकलित AngularJS – $ http.post के लिए किसी भी तरह से JSON के बजाय अनुरोध मापदंड भेजने के लिए? सी # स्थिर निर्माता थ्रेड सुरक्षित है? प्ले 2 स्कला टेम्पलेट में वेरिएबल घोषित करें मैं AJAX का उपयोग करके आंशिक रूप तत्व कैसे प्रदान करूं? एक समूह के अंदर आईडी बनाओ मैं परिवर्तनों के लिए DOM को कैसे मॉनिटर कर सकता हूं?

अजगर के रूप में पाइथन पासिंग सूची

अगर मैं इस कोड को चलाने के लिए गया था:

def function(y): y.append('yes') return y example = list() function(example) print(example) 

यह क्यों ['हां'] वापस लौटाएगा, भले ही मैं सीधे चर 'उदाहरण' को बदल नहीं पा रहा हूं, और मैं इस कोड को कैसे संशोधित कर सकता हूं ताकि फ़ंक्शन द्वारा 'उदाहरण' का प्रभाव न हो?

वेब के समाधान से एकत्रित समाधान "अजगर के रूप में पाइथन पासिंग सूची"

सब कुछ एक पायथन में संदर्भ है यदि आप उस व्यवहार से बचने की इच्छा रखते हैं तो आपको list() साथ मूल की एक नई प्रतिलिपि बनाना होगा list() यदि सूची में अधिक संदर्भ हैं, तो आपको गहरेकोपी () का उपयोग करना होगा

 def modify(l): l.append('HI') return l def preserve(l): t = list(l) t.append('HI') return t example = list() modify(example) print(example) example = list() preserve(example) print(example) 

आउटपुट

 ['HI'] [] 

कोड को संशोधित करने का सबसे आसान तरीका फ़ंक्शन कॉल में [:] जोड़ देगा।

 def function(y): y.append('yes') return y example = list() function(example[:]) print(example) 

"यह ['yes'] क्यों वापस आएगा"

क्योंकि आपने सूची को संशोधित किया है, example

"भले ही मैं सीधे चर 'उदाहरण' नहीं बदल रहा हूँ।"

लेकिन आप कर रहे हैं, आप समारोह में चर example नाम से वस्तु प्रदान की है। फ़ंक्शन ऑब्जेक्ट की append विधि का उपयोग करके ऑब्जेक्ट को संशोधित करता है।

जैसे कि एसओ पर कहीं और चर्चा की गई, append कुछ भी नया नहीं बना। यह जगह में एक वस्तु को संशोधित करता है

देखें क्यों list.append गलत मूल्यांकन करने के लिए? , पायथन एपेंड () बनाम + ऑपरेटर सूची पर, क्यों ये अलग परिणाम देते हैं? , पायथन सूचियों में वापसी मूल्य जोड़ता है ।

और मैं इस कोड को कैसे संशोधित कर सकता हूं ताकि फ़ंक्शन द्वारा 'उदाहरण' का प्रभाव न हो?

उससे तुम्हारा क्या मतलब है? यदि आप फ़ंक्शन द्वारा अपडेट होने के example नहीं चाहते हैं, तो उसे फ़ंक्शन पर पास नहीं करें।

यदि आप फ़ंक्शन को एक नई सूची बनाने के लिए चाहते हैं, तो एक नई सूची बनाने के लिए फ़ंक्शन लिखें।

इसकी वजह से आप सूची को मुद्रित करने से पहले फ़ंक्शन बुलाया। यदि आप सूची को प्रिंट करते हैं, तो फ़ंक्शन को कॉल करें और फिर सूची को फिर से प्रिंट करें, तो आपको एपडेड संस्करण के बाद एक खाली सूची मिल जाएगी। अपने कोड के क्रम में