[PIPython] creare array multidimensionali
ciccio a unical.it
ciccio
Ven 19 Nov 2004 15:16:45 CET
> > Questa parte di codice l'ho gia' utilizzata con successo. La questione
> > dell'array multidimensionale e' nata quando ho provato a tradurre uno
> > script dal perl che fa cio' che voglio, ma essendo in perl non ne ho il
> > controllo e mi sono stupito della semplicita' del perl nel trattare gli
> > array lo script e' il seguente:
> Il problema è che stai usando un array come se fosse un hash, solo perchè
> perl
> esige che le chiavi degli hash siano scalari.
Considerato che sono un neofita ma mi piace la spontaneita' e l'eleganza del
python, potreste darmi qualche dritta sulla differenza tra array e hash?
> Python non ti permette di far confusione tra sequence e dictionary, però i
> dictionary di python sono più potenti degli hash di perl.
>
> #!/usr/bin/python
>
> CRLF = '\r\n'
> file_list = 'file_list.txt'
> output_file = 'summary.txt'
> results = {}
> replicate = 0
>
> for filename in file(file_list):
> filename = filename.rstrip(CRLF)
> for line in file(filename):
> a, b, c = line.rstrip(CRLF).split('\t')
> a, b, c = int(a), int(b), c.strip()
> results[a, b, replicate] = c
> replicate += 1
> out = file(output_file, 'w')
> m = 1 + max([x[0] for x in results])
> for i in range(1, m):
> for j in range(1 + i, 1 + m):
> clist = [results.get((i, j, k), '') for k in range(0, replicate)]
> print >> out, '\t'.join([str(i), str(j)] + clist)
>
> Nota che il tuo script perl non funziona (o almeno non fa quello che
> descrivevi nell'esempio precedente) poichè manca un +1 nell'estremo destro
> del ciclo su $j, durante la stampa del file d'uscita.
>
Geazie per lo script cerchero' di imparare il piu' possibile
> http://thisurlenablesemailtogetthroughoverzealousspamfilters.org
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.zope.it/cgi-bin/mailman/listinfo/python
>
-------------------------------------------------
This mail sent through IMP: http://horde.org/imp/
More information about the Python
mailing list