[Python] generatori
Vittorio Zuccala'
vittorio.zuccala a gmail.com
Mar 3 Gen 2012 09:47:25 CET
Ti ridei che l'unica cosa che sfugge è un paio di parentesi :-)
Prova così:
mostra((n*n*n for n in range(5)))
2012/1/3 Daniele Zambelli <daniele.zambelli a gmail.com>
> Mi sono imbattuto in un comportamento di Python che mi ha sorpreso e
> che mi ha confermato nell'idea che i generatori per me sono un po' un
> mistero.
>
> Una funzione prende come argomento una sequenza e ne stampa gli elementi:
>
> >>> def mostra(sequenza):
> for e in sequenza:
> print(e)
>
>
> >>> mostra((1, 3, 5, 7, 9))
> 1
> 3
> 5
> 7
> 9
>
> Funziona.
>
> Creo un generatore:
> >>> cubi = (n*n*n for n in range(5))
>
> Anche di questo posso stampare gli elementi:
>
> >>> for n in cubi:
> print(n)
>
>
> 0
> 1
> 8
> 27
> 64
>
> Ma se lo passo alla funzione non viene stampato niente:
>
> >>> mostra(cubi)
> >>>
>
> A me il comportamento sembra strano e incoerente, cosa mi sfugge?
>
> grazie per l'attenzione.
>
> --
>
> Daniele
>
> www.fugamatematica.blogspot.com
>
> giusto!
> nel verso
> forse è perché non guardiamo le cose
> Quando non ci capiamo,
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python
>
--
Blog: http://zuccala.blogspot.com/
Twitter: http://twitter.com/#!/VittorioZuccala/
Buzz: http://www.google.com/profiles/nathanvi#buzz
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20120103/21020200/attachment.html>
Maggiori informazioni sulla lista
Python