Sto provando a eseguire conversioni di tipi utilizzando un generatore, ma voglio passare all'elemento successivo nell'iteratore una volta che si ottiene un valore. Il mio tentativo attuale produrrà più valori nei casi in cui le espressioni hanno esito positivo:Rendimento solo una volta per iterazione
def type_convert(data):
for item in data:
try:
yield int(item)
except (ValueError, TypeError) as WrongTypeError:
pass
try:
yield float(item)
except (ValueError, TypeError) as WrongTypeError:
pass
yield item
Come è stato realizzato?
I' Sono piuttosto sicuro che mi manchi solo qualcosa, ma qual è il caso in cui il tuo cast 'int' fallirà ma il tuo cast su' float' avrà successo? –
@NolenRoyalty - considera la stringa: ''1.0'' – mgilson
@mgilson che ha perfettamente senso, grazie: D –