LinuxLudus: Python-domande varie

Federico Ramponi federico.ramponi@gmail.com
Gio 22 Maggio 2008 00:54:25 CEST


2008/5/21 Valerio Pachera <sirio81@gmail.com>:
> 2008/5/21 Federico Ramponi <federico.ramponi@gmail.com>:
>> Una tupla e` una lista immutabile. Dopo che una lista e` stata creata
>> non puoi ne' ridimensionarla ne' riassegnare uno o piu` dei suoi
>> elementi.
>
> Quali vantaggi possono esserci ad usare una tupla al posto di una
> lista? Cioè, pechè esiste?
>
Perche' il contesto a volte suggerisce che una certa sequenza debba
essere costante. In questi casi e` piu` logico e coerente _garantire_
l'immutabilita` usando tuple anziche' liste.
Per esempio il risultato di una SELECT SQL e` una sequenza di righe.
Il risultato "e` quello", punto e basta, non ha senso cambiarlo (se
vuoi cambiare qualcosa nel database devi farlo esplicitamente con una
query INSERT/UPDATE). E allora vedrai che cursor.fetchall() - per
esempio nel modulo MySQLdb - ti ritorna una tupla di tuple, una per
ogni riga.
A volte pero` e` _obbligatorio_ che una sequenza sia immutabile, e
l'esempio classico sono le chiavi dei dizionari. Se ci pensi, non ha
senso che una chiave venga modificata, quella chiave o c'e` o non
c'e`, ma non ha senso cambiarla. Quindi puoi usare tuple come chiavi
di dizionari, ma non liste (provare per credere).

ciao,
r.


Maggiori informazioni sulla lista linuxludus