2013/9/18 Marco Beri <marcob...@gmail.com> > 2013/9/18 Piergiuliano Bossi <pgbo...@gmail.com> > >> 2) non usate liste, ma tuple, ma poi come compensate la mancanza di >> append e remove (sembra una contraddizione in termini ma non lo e', >> basterebbe che append e remove ritornino nuove strutture dati, copie >> dell'originale) >> > > Premetto che questa cosa dei parametri immutabili non è risolvibile come > vorresti tu. > > > Ad ogni modo un append immutabile è come se ci fosse: > >>> a = (1, 2, 3, 4) > >>> a += (5, 6) # Appendi due elementi ad una copia della vecchia sequence > >>> a > (1, 2, 3, 4, 5, 6) > > > La remove è in effetti un po' più rognosa e bruttina: > > >>> a = (1, 2, 3, 4, 5) > >>> a = a[:3] + a[3+1:] # Rimuove il terzo elemento da una copia della > vecchia sequence > >>> a > (1, 2, 3, 5) > > > Beh, non male, potrei scrivermi dei metodi che fanno queste cose in un modo un po' piu' esplicito, ma l'idea c'e'. Eg: remove((1, 2, 3, 4, 5), 3) == (1, 2, 3, 5)
> In questo modo anche se uno ti passa una lista, in uscita te la troverai > immutata. > Comunque, come dice Manlio, la cosa migliore è di fartene una copia subito: > > Poi, per preferenza personale, io preferisco copiare una sequence così: > > a = a[:] > > Capito, grassie. Giuliano -- Piergiuliano Bossi Blog: http://thinkingbox.wordpress.com/ Twitter: http://twitter.com/thinkingbox (English) Twitter: http://twitter.com/scatolapensante (Italiano) Google+: https://plus.google.com/u/0/108187981162465525118
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python