[Python] Il dilemma degli array mutabili

Marco Beri marcoberi a gmail.com
Mer 18 Set 2013 16:28:32 CEST


2013/9/18 Piergiuliano Bossi <pgbossi a 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)


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[:]

Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20130918/825549f1/attachment.html>


Maggiori informazioni sulla lista Python