2009/5/28 angels...@libero.it <angels...@libero.it> > Ciao a tutti. > Sono un biologo marino (quindi il mio approccio alla > programmazione รจ completamente da autodidatta) e mi sono appena scritto > alla > ML. Ho iniziato a usare Python da qualche mese sia per diletto che per > lavoro. > Spesso infatti ho bisogno di rendere automatici, precisi e veloci alcuni > processi di analisi di dati biologici.
Questo programmillo: #============================== raw = """ID Date Time Val1 Val2 3522 28/04/2009 07:12:55 0,73 16,58 3664 28/04/2009 07:17:39 1,05 16,48 3665 28/04/2009 07:17:41 1,83 16,50 3666 28/04/2009 07:17:43 3,6 16,50 3667 28/04/2009 07:17:45 4,58 16,56 3668 28/04/2009 07:17:47 4,37 16,58 3669 28/04/2009 07:17:49 2,43 16,60 3690 28/04/2009 07:18:31 1,65 16,58 3691 28/04/2009 07:18:33 1,5 16,58 3712 28/04/2009 07:19:15 1,27 16,56 3713 28/04/2009 07:19:17 1,0 16,58 3714 28/04/2009 07:19:19 0,6 16,58 3772 28/04/2009 07:21:15 1,85 16,48""" dati = sorted([line.split(" ") for line in raw.split("\n")[1:]]) liste = [] for riga in dati: if not liste or int(riga[0]) != int(liste[-1][-1][0]) + 1: liste.append([]) liste[-1].append(riga) for n, lista in enumerate(liste): print "Sequenza %d lunghezza %d" % (n, len(lista)) for riga in lista: print riga[0], print "\n", "="*10 #============================== Stampa questo: Sequenza 0 lunghezza 1 3522 ========== Sequenza 1 lunghezza 6 3664 3665 3666 3667 3668 3669 ========== Sequenza 2 lunghezza 2 3690 3691 ========== Sequenza 3 lunghezza 3 3712 3713 3714 ========== Sequenza 4 lunghezza 1 3772 ========== Il lavoro "sporco" lo fanno tutto queste righe: liste = [] for riga in dati: if not liste or int(riga[0]) != int(liste[-1][-1][0]) + 1: liste.append([]) liste[-1].append(riga) Ovviamente do per scontato un po' di cose: - che la prima riga contenga gli header - che ogni riga abbia un valore intero come primo campo - che i campi siano separati da un solo spazio Se non e` cosi` devi cambiare il primo split di questa riga: dati = sorted([line.split(" ") for line in raw.split("\n")[1:]]) Ciao. Marco. -- http://thinkcode.tv - Prossimamente su questi schermi http://beri.it - Blog di una testina di vitello http://stacktrace.it - Aperiodico di resistenza informatica
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python