Ciao Marcello, grazie della risposta, controlla pero con il tuo pythonista, l'output funziona ma ci deve essere un modo piu idiomatico di farlo. Questo da solo la prima colonna, piu il formato ciphercipher:ciphercipher
has_modifica = lambda x: 'Modifica' in x test = [['Settembre 2021'], ['01 Merc', '07:58', '12:36', 'milano', 'torino', ' ', '13:57', '17:33', 'roma', 'napoli'], ['02 Giov', '07:32', '12:55', 'Torino', 'palermo', ' ', '14:13', '18:43', 'como', 'genova'], ['04 Saba'], ['05 Dome'], ['06 Lune', '07:41', '14:57', 'genova', 'livorno', ' ', '13:50', '19:08', 'siracusa', 'messina'], ['22 Merc', 'Modifica', ' ', '05:09', '12:09', 'Torino', 'Torino'], ['29 Merc', 'Modifica']] out = [] v = [ x[0:2] if has_modifica(x) else x for x in test] def filter_out(k): y = k.strip() x = y.split(":") if len(x) != 2: return False return x[0].isnumeric() and x[1].isnumeric() for row in v: z = list(filter(filter_out ,row[2:])) c = [] if len(z) > 0: c = [row[0], *z] else: c = [row[0]] out.append(c) for k in out: print(k) Saluti, Giorgio Il giorno sab 16 ott 2021 alle ore 13:32 Marcello <marce...@linuxvil.it> ha scritto: > *Da:* Python <python-boun...@lists.python.it> *Per conto di *Giorgio Zoppi > *Inviato:* sabato 16 ottobre 2021 09:34 > > > > Ciao Marcello, > > addormentato non ho letto bene:) > > > > > > has_modifica = lambda x: 'Modifica' in x > > test = [['Settembre 2021'], ['01 Merc', '07:58', '12:36', 'milano', > 'torino', ' ', '13:57', '17:33', 'roma', 'napoli'], ['02 Giov', '07:32', > '12:55', 'Torino', 'palermo', ' ', '14:13', '18:43', 'como', 'genova'], > > ['04 Saba'], > > ['05 Dome'], > > ['06 Lune', '07:41', '12:57', 'genova', 'livorno', ' ', '13:50', '19:08', > 'siracusa', 'messina'], \ > > > > ['22 Merc', 'Modifica', ' ', '05:09', '12:09', 'Torino', 'Torino'],\ > > > > ['29 Merc', 'Modifica']] > > > > items = ['TORINO', > 'ROMA','MILANO','NAPOLI','GENOVA','COMO','PALERMO','MESSINA','SIRACUSA','LIVORNO', > ' '] > > out = [] > > v = [ x[0:2] if has_modifica(x) else x for x in test] > > for row in v: > > z = list(filter(lambda x: x.upper() not in items ,row)) > > out.append(z) > > for k in out: > > print(k) > > > > Ciao Giorgio, > > così come hai fatto funziona, ma il mio problema è che non ho un elenco di > città (potenzialmente potrebbe essere anche un paese) quindi devo fare in > modo che il campo sia corretto solo se comincia con 2 numeri tipo > > if record[:2].isnumeric(): > > > > > > > > > > > > > _______________________________________________ > Python mailing list > Python@lists.python.it > https://lists.python.it/mailman/listinfo/python > -- Life is a chess game - Anonymous.
_______________________________________________ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python