2012-02-04 13 views
5

मेरे पास एक सूची है जहां मैं एक विशिष्ट वर्ग द्वारा बनाई गई वस्तुओं को सहेजता हूं।ओओपी पायथन - एक सूची से वर्ग उदाहरण को हटा रहा है

मैं जानना चाहता हूं, क्योंकि मैं इस समस्या को हल करने का प्रबंधन नहीं कर सकता, मैं सूची से कक्षा का उदाहरण कैसे हटा सकता हूं?

यह वस्तु के एक विशेषता को जानने के आधार पर होना चाहिए।

thelist = [item for item in thelist if item.attribute != somevalue] 

यह item.attribute == somevalue साथ सभी आइटम हट जाएंगे:

+1

अगली बार जब आप से उन्हें हटा दिया उस कोड का एक उदाहरण जोड़ना चाहिए जिसे आप काम नहीं कर सकते हैं, उस उत्तर को भी स्वीकार करें जो आपको समस्या को हल करने में मदद करता है और उपयोगी लोगों को वोट देता है। –

+0

ठीक है धन्यवाद। :) –

+0

आपका स्वागत है, आप इस [स्टाइल गाइड के सवालों और उत्तरों] में कुछ सलाह भी ले सकते हैं (http://meta.stackexchange.com/a/18616/177799)। एक बेहतर सवाल बेहतर उत्तरों की ओर जाता है। –

उत्तर

11

सूची के माध्यम से दोहराएं, वस्तु और अपनी स्थिति को मिल जाए, फिर उसे हटाने:

for i, o in enumerate(obj_list): 
    if o.attr == known_value: 
     del obj_list[i] 
     break 
+1

एक टाइपो है: '==' '' '' '' '। –

+0

@RikPoggi धन्यवाद। इसे ठीक किया – WolframH

3

आप एक सूची समझ इस्तेमाल कर सकते हैं।

तुम सिर्फ एक इस तरह के आइटम निकालना चाहते हैं, तो WolframH's solution का उपयोग करें।

+0

'फ़िल्टर' फ़ंक्शन का उपयोग करना भी काम करेगा, है ना? – Divya

+0

एक फ़िल्टर सूची समझ की तरह काम करेगा, लेकिन आमतौर पर 'फ़िल्टर' को कॉल करना एक सूची समझ से धीमा है। – unutbu

1

आप उन्हें एक dict में संग्रहित किया जा सकता था और नाम

di = {"test" : my_instance()} 
del di['test'] 
संबंधित मुद्दे