[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