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.zambe...@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@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
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python