On Jan 30, 2008 6:18 PM, Java <[EMAIL PROTECTED]> wrote: > Prima di tutto chiedo perdono per il bombardamento di domande... > > Poi... ecco di cosa vrei bisogno (una riga di pseudocodice vale più di > mille parole): > > # devo aggiornare questa lista > rete = [<lista di oggetti con etichetta>] > # usando i dati di questa > lista = [<lista[0]è la "testa" tutti gli altri sono Etichette] > > testa = null > for elem in lista: > if elem.getEtichetta() == lista[0]: > testa = elem > else: > testa = Elemento() > > # da qui in poi lavoro su testa > > Spero che si capisca che "testa" può essere sia un nuovo oggetto > Elemento e sia un'oggetto già presente in rete. > > Quello che ci faccio dopo è identico in entrambi i casi, ma senza valore > "null" non so come fare.... > > Potrei subito creare testa = Elemento(), ma se poi invece devo solo > aggiornare un valore già presente, ho creato inutilmente un nuovo > oggetto che resterà in giro fino al prossimo garbage collecting... > > Non mi è chiaro il tuo problema Dall'esempio di codice che hai mandato, non c'è nessuno bisogno di creare un nameholder testa (comunque sarebbe testa = None)
semplicemente nei due casi assegni testa a due oggetti diversi, di volta in volta o elem o Elemento() Ti faccio ntoare che il tuo codice assegna testa all'ULTIMO elem in lista che abbia l'etichetta giusta. Ma forse il codice che volevi scrivere era: rete = [elem for elem in lista if elem.etichetta == qualcosa] ? Non mi piace molto neanche il metodo getEtichetta, non ti basta leggere elem.etichetta? ciao, Francesco
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python