Removing things from Python list during for loop -
यह मेरा कोड है:
toBe = [] # अगर कोई मिल अनुरोध अगर अनुरोध। GET.items ()! = []: एक्स के लिए डीबी में: प्रयास करें: # यह पीएमटी को हटा रहा है जो नाम के लिए विशिष्ट है अगर अनुरोध। GET ['pmtName']! = "कोई नहीं": यदि नहीं X ['tags'] में ['pmtName'] का अनुरोध करें। प्रिंट एक्स ['शीर्षक'], एक्स ['टैग'] to.Be.append (x) जारी रखें # यह चोटी सामान को हटा रहा है यदि int (request.GET) ['पीकमिन']): यदि इंट (अनुरोध। जीईटी ['पीकमिन']) & lt; Int (x ['charge_peak']): tobe.append (x) अगर int (request.GET ['peakMax']) जारी रखें: यदि int (request.GET ['peakMax']) & gt; Int (x ['charge_peak']): tobe.append (x) अगर int (request.GET ['widthMin']) जारी रखें: यदि int (request.GET ['widthMin']) & lt; Int (x ['charge_width']): tobe.append (x) अगर int (request.GET ['widthMax']) जारी रखें: यदि int (request.GET ['widthMax']) & gt; Int (x ['charge_width']): toBe.append (x) को छोड़कर जारी रखें: पास #TODO: बेवकूफ हैक, यह करने के लिए एक्स में तय करने की आवश्यकता है: DB.remove (x) del tobe
मूलतः मैं आइटम को हटाना चाहता हूं और फिर अगले एक को छोड़ना चाहता हूं। इस के साथ समस्या यह है कि जब ऐसा होता है, तो यह सूची के आदेश को खराब करता है और कुछ छोड़ता है। किसी को भी इस के लिए एक काम पता है? या शायद यह करने का एक अलग तरीका है?
धन्यवाद
जवाब मैं आम तौर पर इस प्रकार के प्रश्नों को देखते हैं यदि सूची में पीछे की तरफ लूप है। यहां बताया गया है कि मैं अपने किसी एक प्रोग्राम में यह कैसे करता हूं:
श्रेणी के लिए मैं (लेन (my_list) -1, -1, -1): # कुछ करें
यह तब भी काम करता है जब मैं सूची में आइटम जोड़ता हूं। वे कहते हैं कि आप "i के लिए सूची में [[::-1]:" इसके बजाय वाक्यविन्यास का उपयोग कर सकते हैं। मैंने ऐसा करने की कोशिश नहीं की है।
Comments
Post a Comment