[PIPython] (senza oggetto)

Alex Martelli aleaxit
Ven 19 Nov 2004 15:16:40 CET


On Wednesday 07 January 2004 04:24 pm, giorni a cerm.unifi.it wrote:
> Salve a tutti,
>
> scusate la banalita' della domanda: come si fa a creare una matrice
> quadrata molto grande che successivamente deve essere riempita?

Un contenitore in Python e` sempre "riempito" di qualcosa.  Comunque
puoi certo modificare le celle piu` avanti.

La soluzione probabilmente giusta richiede l'uso di Numeric (o numarray),
le estensioni Python pensate per la gestione di array molto grandi (ivi
include matrici quadrate e quant'altro).  Se lavori SUL SERIO con array
in Python, guardati Numeric (suggerisco la documentazione su di esso
che ho scritto nell'apposito capitolo di Python in a Nutshell, ma, ovvio,
non sono obbiettivo in merito:-).

Comunque, volendo usare Python "nudo", il modo migliore per fare una
matrice quadrata puo` essere una lista di liste, o, se non serve la totale
genericita` del contenuto di ogni cella ma ad esempio si sa a priori che
le celle saranno sempre numeri floating point, una lista di array (vedi il
modulo array della libreria standard). La genericita` si paga (soprattutto
in termini di memoria, ma anche di prestazioni).

Se serve la totale genericita` (lista di liste, celle del tutto arbitrarie):

matrice = [ [None]*N for i in xrange(N) ]

prepara una "matrice quadrata" con N x N "celle" indipendenti, che
all'inizio contengono tutte l'oggetto None, il normale "marker" Python
per indicare "acca` 'nce staggnente".


Alex




More information about the Python mailing list