[Python] Il dilemma degli array mutabili

Piergiuliano Bossi pgbossi a gmail.com
Mer 18 Set 2013 17:00:22 CEST


2013/9/18 Marco Beri <marcoberi a gmail.com>

> 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)
>
>
>
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
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20130918/9dae5fb8/attachment-0001.html>


Maggiori informazioni sulla lista Python