Io proverei un approccio alternativo e forse più Pythonico... Considerando la singola colonna mi aspetto che la "varietà" delle lunghezze non sia molto ampia.
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. * apri file csv * crea un oggetto csv_reader * crea un array i cui elementi sono dict (uno per ogni campo) * leggi riga per riga * fai lo split dei campi e metti nell'array "campi" * per ogni campo di "campi" calcola la lunghezza e segna una "x" nel dict con chiave = lunghezza. * alla fine di tutto, esamina le (poche) chiavi di ciascun dict per determinare la max lunghezza di ciascun campo. Se ho due minuti provo a buttar giù un esempio di codice. Matteo. From: vittorio.zucc...@gmail.com Date: Thu, 2 Sep 2010 14:41:10 +0200 To: python@lists.python.it Subject: [Python] Algoritmo in CSV Buongiorno, chiedo consiglio su un algoritmo da usare che sia veloce. Anche solo in meta-codice. Problema: - carico un CSV con 200 colonne e 2 milioni di righe - voglio trovare la lunghezza maggiore per ogni campo Meta-codice * apri file csv * crea un oggetto csv_reader * crea un array "lunghezzamax" * leggi riga per riga * fai lo split dei campi e metti nell'array "campi" * per ogni campo guarda la lunghezza: se lunghezza(campi[i]) > lunghezza[i] allora lunghezza[i]=lunghezza(campi[i]) Ecco: il mio problema è che vengono effettuati 200*2.000.000 di IF e la cosa non mi piace molto. Qualcuno ha un consiglio per ottimizzare? Grazie in anticipo. _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python