<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'>
Io proverei un approccio alternativo e forse più Pythonico... <br>
Considerando la singola colonna mi aspetto che la "varietà" delle lunghezze non sia molto ampia.<br>
Memorizzerei quindi in un dict tali lunghezze usando come "chiave"
proprio la lunghezza, in questo modo non faccio alcun confronto ma
sfrutto la velocità di calcolo della chiave dei dict.<br>
<br>
* apri file csv<br>
* crea un oggetto csv_reader<br>
* crea un array i cui elementi sono dict (uno per ogni campo)<br>
* leggi riga per riga<br>
* fai lo split dei campi e metti nell'array "campi"<br>
* per ogni campo di "campi" calcola la lunghezza e segna una "x" nel dict con chiave = lunghezza.<br>
* alla fine di tutto, esamina le (poche) chiavi di ciascun dict per determinare la max lunghezza di ciascun campo.<br>
<br>
Se ho due minuti provo a buttar giù un esempio di codice.<br>
<br>
Matteo.<br><br><br><hr id="stopSpelling">From: vittorio.zuccala@gmail.com<br>Date: Thu, 2 Sep 2010 14:41:10 +0200<br>To: python@lists.python.it<br>Subject: [Python] Algoritmo in CSV<br><br>Buongiorno,<br>chiedo consiglio su un algoritmo da usare che sia veloce.<br>Anche solo in meta-codice.<br><br>Problema:<br>- carico un CSV con 200 colonne e 2 milioni di righe<br>- voglio trovare la lunghezza maggiore per ogni campo<br>
<br>Meta-codice<br>* apri file csv<br>* crea un oggetto csv_reader<br>* crea un array "lunghezzamax"<br>* leggi riga per riga<br>* fai lo split dei campi e metti nell'array "campi"<br>* per ogni campo guarda la lunghezza: se lunghezza(campi[i]) > lunghezza[i] allora lunghezza[i]=lunghezza(campi[i]) <br>
<br>Ecco: il mio problema è che vengono effettuati 200*2.000.000 di IF e la cosa non mi piace molto.<br>Qualcuno ha un consiglio per ottimizzare?<br><br>Grazie in anticipo.<br><br>
<br>_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python                                            </body>
</html>