Python List: How to append objects while being used by a function? -


संभव डुप्लिकेट:

मैं एक अजगर स्क्रिप्ट लिख रहा हूं जहां मैं एक विधि के भीतर से एक वर्ग के शरीर में बनाई गई सूची में वस्तुओं को जोड़ने का प्रयास कर रहा हूं।

मेरा कोड अब तक यह है:

  वर्ग के कार्यकर्ता: myList = ['एक वस्तु', 'दूसरा आइटम'] def itter_List_Func (स्वयं, सूची_परम): सूची में आइटम के लिए-परम: more_items = item.split () self.myList [:] = [स्व। MyList + item_toems में आइटम के लिए)  

लेकिन किसी अजीब तरह की फैशन के लिए मैं कुछ 'में चलने वाली त्रुटि को संशोधित नहीं कर सकता' क्या मुझे इन-प्लेस परिवर्तन को छोड़ देना चाहिए और नए आइटम के साथ एक नई सूची ऑब्जेक्ट भी बनाने की कोशिश करनी चाहिए? या वह सूची- param या कुछ के लिए खोए गए संदर्भ के कारण अधिक समस्याएं पैदा करेगा?

" मेरी लिस्ट में आइटम के लिए (item.split ()), [])

यह सिर्फ लिखित तरीके से है, कि दुर्भाग्य से धीमी गति से हो जाता है यदि आपके पास बहुत सी मद हैं (क्योंकि sum जोड़ पर निर्भर करता है, और इसके अतिरिक्त list < / कोड> एस पायथन में)। स्पष्ट लूप का उपयोग करना:

  परिणाम = [] myList में आइटम के लिए: result.extend (item.split ()) myList = परिणाम  

यह है : हम सूची की प्रतिलिपि नहीं बनाते हैं और इसे संशोधित करने का प्रयास करते हैं; हम एक रिक्त सूची बनाते हैं और प्रक्रिया के लिए इनपुट के रूप में मूल सूची का उपयोग करते हुए इसे वही रूप में परिवर्तित कर देते हैं।

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


Comments

Popular posts from this blog

Python SQLAlchemy:AttributeError: Neither 'Column' object nor 'Comparator' object has an attribute 'schema' -

java - How not to audit a join table and related entities using Hibernate Envers? -

mongodb - CakePHP paginator ignoring order, but only for certain values -