Voglio estrarre le righe da un flusso precedute dal carattere L
. La comprensione della lista qui sotto fa il lavoro, ma chiama next
sul flusso all'interno della comprensione in un modo che non ho mai visto prima. È considerato una cattiva forma?
clauses = [
list(map(int, next(stream)))
for line in stream
if line == 'L'
]
Il next
avanza la sequenza in modo che le righe che seguono L
linee non passino mai attraverso il predicato, il che viola il principio "non modificare mai una sequenza su cui stai iterando". Ma mi chiedo se questo caso potrebbe essere un'eccezione ...