[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