Qual è la differenza tra la comprensione degli elenchi e la comprensione dei generatori con yield
all'interno? Entrambi restituiscono un oggetto generatore (listcomp
e genexpr
rispettivamente), ma a piena valutazione quest'ultimo aggiunge ciò che sembra essere superfluo None
s.Differenza tra la comprensione degli elenchi e la comprensione del generatore con `yield` all'interno di
>>> list([(yield from a) for a in zip("abcde", itertools.cycle("12"))])
['a', '1', 'b', '2', 'c', '1', 'd', '2', 'e', '1']
>>> list(((yield from a) for a in zip("abcde", itertools.cycle("12"))))
['a', '1', None, 'b', '2', None, 'c', '1', None, 'd', '2', None, 'e', '1', None]
Come mai? Qual è la spiegazione scientifica?
@Alik, @Antti Haapala, rimuovere la dicitura "duplicato". Questa domanda richiede il comportamento usando una dichiarazione 'yield from' di Python. La risposta "duplicata" collegata pone una domanda simile sull'istruzione Python "yield". Queste due affermazioni sono distinte. E poiché "yield from" è stato aggiunto solo di recente al linguaggio, è naturale che ci siano nuovi comportamenti imprevisti che produce. Ciò dovrebbe portare ad alcune domande che, sebbene possano assomigliare alle domande su "yield", non sono le stesse domande di "yield". –
stai ancora cercando una risposta alla tua domanda? – Daniel