[Python] R: R: lista di liste
Giorgio Zoppi
giorgio.zoppi a gmail.com
Sab 16 Ott 2021 17:05:45 CEST
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 <marcello a linuxvil.it> ha
scritto:
> *Da:* Python <python-bounces a 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 a lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
--
Life is a chess game - Anonymous.
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20211016/f06f6c93/attachment.html>
Maggiori informazioni sulla lista
Python